https://github.com/ramansharma100/pubspec_runtime
this is a dart library to manuplate pubspec.yaml at runtime
https://github.com/ramansharma100/pubspec_runtime
dart dart-package flutter pubspec pubspec-maintenance pubspec-runtime pubspec-yaml
Last synced: 20 days ago
JSON representation
this is a dart library to manuplate pubspec.yaml at runtime
- Host: GitHub
- URL: https://github.com/ramansharma100/pubspec_runtime
- Owner: RamanSharma100
- License: mit
- Created: 2024-06-14T07:37:16.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-16T07:38:28.000Z (almost 2 years ago)
- Last Synced: 2025-10-22T23:40:35.917Z (7 months ago)
- Topics: dart, dart-package, flutter, pubspec, pubspec-maintenance, pubspec-runtime, pubspec-yaml
- Language: Dart
- Homepage: https://pub.dev/packages/pubspec_runtime
- Size: 21.5 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Pubspec Runtime
A Dart package that provides a simple way to manuplate the pubspec.yaml file at runtime.
## Features
- Add dependencies to the `pubspec.yaml` file.
- Add dev dependencies to the `pubspec.yaml` file.
- Add key value pairs to the `pubspec.yaml` file.
- Get the value of a key from the `pubspec.yaml` file.
- Remove key value pairs from the `pubspec.yaml` file.
- Save changes to the `pubspec.yaml` file.
- Run `pub get` command.
- Parse the `pubspec.yaml` file using Parser
## Usage
A simple usage example:
```dart
import 'package:pubspec_runtime/pubspec_runtime.dart';
void main() async {
final pubspecEditor = PubspecEditor();
print("Dependencies:");
print(pubspecEditor.dependencies.list);
print("Dev Dependencies:");
print(pubspecEditor.devDependencies.list);
print("Adding a dependency...");
pubspecEditor.dependencies
.add(Dependency(name: 'http', version: '^0.13.3', isDev: false));
print("Adding a dev dependency...");
pubspecEditor.devDependencies
.add(Dependency(name: 'http', version: '^0.13.3', isDev: true));
print("Add a key value pair to the `pubspec.yaml` file.");
pubspecEditor.add("author", "John Doe");
print("Get the value of a key from the `pubspec.yaml` file.");
print(pubspecEditor.get("author"));
print("Remove a key value pair from the `pubspec.yaml` file.");
pubspecEditor.remove("author");
print("Updated Dependencies:");
print(pubspecEditor.dependencies.list);
print("Saving changes...");
pubspecEditor.save();
print("Changes saved successfully!");
print("Running pub get...");
runPubGet()
.then((value) => print(
"Pub get executed successfully with exit code: ${value.exitCode}"))
.catchError(
(error) => print("Error occurred while executing pub get: $error"));
}
```
Simple usage of the parser:
```dart
import "package:pubspec_runtime/pubspec_runtime.dart";
void main() {
final Parser parser = Parser();
final String filePath =
"/media/raman/Projects/dart_libs/runtime_yaml/pubspec.yaml";
final Map content = parser.parseFile(filePath);
print(content);
}
```
## Usable Functions and Classes
- `PubspecEditor` class is the main class that provides the functionality to manipulate the `pubspec.yaml` file.
- `dependencies` property is an instance of the `DependencyManager` class that provides the functionality to manipulate the dependencies in the `pubspec.yaml` file.
- `devDependencies` property is an instance of the `DependencyManager` class that provides the functionality to manipulate the dev dependencies in the `pubspec.yaml` file.
- `parser` property is an instance of the `Parser` class that provides the functionality to parse the `pubspec.yaml` file.
- `add` function is used to add a key value pair to the `pubspec.yaml` file.
- `get` function is used to get the value of a key from the `pubspec.yaml` file.
- `remove` function is used to remove a key value pair from the `pubspec.yaml` file.
- `save` function is used to save the changes to the `pubspec.yaml` file.
- `runPubGet` function is used to run the `pub get` command.
- `exists` function is used to check if a key exists in the `pubspec.yaml` file.
- `Dependency` class is a simple class that represents a dependency in the `pubspec.yaml` file.
- `name` property is the name of the dependency.
- `version` property is the version of the dependency.
- `isDev` property is a boolean value that indicates whether the dependency is a dev dependency or not.
- `DependencyManager` class is a class that provides the functionality to manage dependencies as objects.
- `add` function is used to add a dependency to the `pubspec.yaml` file.
- `remove` function is used to remove a dependency from the `pubspec.yaml` file.
- `list` property is used to get the list of dependencies in the `pubspec.yaml` file.
- `Parser` class is a class that provides the functionality to parse the `pubspec.yaml` file.
- `parseFile` function is used to parse the `pubspec.yaml` file and return the content as a map.
- `parse` function is used to parse the content of the `pubspec.yaml` file and return it as a map.
- `mapToYamlString` function is used to convert a map to a YAML string.
## License
MIT License
## Author
[Raman Sharma](https://github.com/RamanSharma100)
## Contributors
[Raman Sharma](https://github.com/RamanSharma100)
- Feel free to contribute to this project by creating a pull request or raising an issue.
## Issues
- If you find any issues with the package, please raise an issue on the GitHub repository.
### Enjoy Coding! 😊