WorkspaceDartToolingConfig.fromMap constructor

WorkspaceDartToolingConfig.fromMap(
  1. Map<Object?, Object?> value
)

Implementation

factory WorkspaceDartToolingConfig.fromMap(Map<Object?, Object?> value) {
  Map<String, Object?> section(String key) {
    final raw = value[key];
    if (raw == null) return const {};
    if (raw is! Map) {
      throw FormatException('dartTooling.$key must be a mapping');
    }
    return Map.unmodifiable({
      for (final e in raw.entries) '${e.key}': _freeze(e.value),
    });
  }

  return WorkspaceDartToolingConfig(
    extraction: section('extraction'),
    analyzerPlugin: section('analyzerPlugin'),
    buildHooks: section('buildHooks'),
    generation: section('generation'),
    extensions: Map.unmodifiable({
      for (final entry in value.entries)
        if (entry.key is String && !_knownKeys.contains(entry.key))
          entry.key as String: _freeze(entry.value),
    }),
  );
}