loadPubspecConfigFromInput function
Implementation
Config loadPubspecConfigFromInput(ConfigLoadInput input) {
final pubspecLocaleHint = normalize(
join(
basename(input.pubspecFile.parent.path),
basename(input.pubspecFile.path),
),
);
log.info('v$packageVersion Loading ...');
log.info('Reading options from $pubspecLocaleHint');
VersionConstraint? sdkConstraint;
final defaultMap = loadYaml(configDefaultYamlContent) as YamlMap?;
final pubspecMap = loadYaml(input.pubspecContent) as YamlMap?;
if (safeCast<String>(pubspecMap?['environment']?['sdk']) case final sdk?) {
sdkConstraint = VersionConstraint.parse(sdk);
}
Map mergedMap = mergeMap([defaultMap, pubspecMap]);
if (input.buildOptions case final Map buildOptions
when buildOptions.isNotEmpty) {
mergedMap = mergeMap([
mergedMap,
{'flutter_gen': buildOptions},
]);
log.info('Reading options from BuilderOptions');
}
final pubspec = Pubspec.fromJson(mergedMap);
final pubspecLockMap = loadYaml(input.pubspecLockContent ?? '') as YamlMap?;
if (safeCast<String>(pubspecLockMap?['sdks']?['dart']) case final sdk?) {
sdkConstraint ??= VersionConstraint.parse(sdk);
}
final pubspecLockPackages = safeCast<YamlMap>(pubspecLockMap?['packages']);
final integrationVersionConstraints = <Type, VersionConstraint>{};
final integrationResolvedVersions = <Type, Version>{};
for (final entry in integrationPackages.entries) {
if (pubspec.dependenciesVersionConstraint[entry.value] case final c?) {
integrationVersionConstraints[entry.key] = c;
}
if (pubspecLockPackages?[entry.value]?['version'] case final String v) {
final version = Version.parse(v);
integrationResolvedVersions[entry.key] = version;
}
}
final analysisOptionsMap =
loadYaml(input.analysisOptionsContent ?? '') as YamlMap?;
// final formatterTrailingCommas = switch (safeCast<String>(
// analysisOptionsMap?['formatter']?['trailing_commas'],
// )) {
// final s? => TrailingCommas.values.firstWhereOrNull((e) => e.name == s),
// _ => null,
// };
final formatterPageWidth = safeCast<int>(
analysisOptionsMap?['formatter']?['page_width'],
);
return Config._(
pubspec: pubspec,
pubspecFile: input.pubspecFile,
sdkConstraint: sdkConstraint,
integrationResolvedVersions: integrationResolvedVersions,
integrationVersionConstraints: integrationVersionConstraints,
// formatterTrailingCommas: formatterTrailingCommas,
formatterPageWidth: formatterPageWidth,
);
}