pubspec_yaml 3.1.0 pubspec_yaml: ^3.1.0 copied to clipboard
Dart library to access and manipulate content of pubpec.yaml files
pubspec_yaml #
Dart library to access and manipulate content of pubpec.yaml files
Class PubspecYaml #
PubspecYaml is a data type representing data stored in pubspec.yaml files.
The following fields are supported:
- Package name
- Package version
- Package description
- Package author/authors
- Package homepage, repository, and issue tracker
- Package documentation
- Package server specification
- Dependency specifications: regular, dev, and overrides
- SDK constraints
- Command-line executables provided by the package
Other fields are accessible via PubspecYaml.customFields as a JSON structure (Map<String, dynamic>).
YAML Import #
PubspecYaml provides two methods to import pubspec.yaml content:
- The factory method PubspecYaml.loadFromYamlString() creates an object from a string with pubspec.yaml content
- String extension method toPubspecYaml()
YAML Export #
PubspecYaml.toYamlString() produces pubspec.yaml content that can be written to a file
Data Manipulation #
PubspecYaml uses functional_data extensions to enable equality operations and lenses (https://pub.dev/packages/functional_data).
Example #
The following Dart script checks whether production dependencies have overrides:
void main() {
final pubspecYaml = File('pubspec.yaml').readAsStringSync().toPubspecYaml();
final productionOverrides = pubspecYaml.dependencyOverrides.where(
(override) => pubspecYaml.dependencies.any((
productionDependency,
) =>
productionDependency.package() == override.package()),
);
if (productionOverrides.isEmpty) {
print('SUCCESS: No overrides of production dependencies detected');
} else {
print('WARNING: Overrides of production dependencies detected:');
productionOverrides.forEach(print);
}
}