https://github.com/akaiser/dart_dependency_checker
A utility package for checking dependencies within Dart/Flutter packages.
https://github.com/akaiser/dart_dependency_checker
dart flutter
Last synced: 5 months ago
JSON representation
A utility package for checking dependencies within Dart/Flutter packages.
- Host: GitHub
- URL: https://github.com/akaiser/dart_dependency_checker
- Owner: akaiser
- License: bsd-3-clause
- Created: 2023-12-09T00:02:41.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-11T16:14:43.000Z (11 months ago)
- Last Synced: 2025-08-11T18:20:17.129Z (11 months ago)
- Topics: dart, flutter
- Language: Dart
- Homepage: https://pub.dev/packages/dart_dependency_checker
- Size: 243 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# dart_dependency_checker
A utility package for checking and fixing dependencies within Dart/Flutter packages. This utilities can be used directly
by depending on this package or through the
command-line [dart_dependency_checker_cli](https://pub.dev/packages/dart_dependency_checker_cli) wrapper.
## Usage
### Installation
```bash
dart pub add dart_dependency_checker
```
### Example:
```dart
import 'package:dart_dependency_checker/dart_dependency_checker.dart';
void main() {
// Checks used dependencies via imports only.
const depsUsedChecker = DepsUsedChecker(
DepsUsedParams(
path: '.',
mainIgnores: {'equatable'},
devIgnores: {'test'},
),
);
// Checks via pubspec.yaml declared but unused dependencies.
const depsUnusedChecker = DepsUnusedChecker(
DepsUnusedParams(
path: '.',
mainIgnores: {'meta'},
devIgnores: {'build_runner'},
fix: false, // Danger zone! Use with caution.
),
);
// Checks direct use of pubspec.yaml undeclared aka. transitive dependencies.
const transitiveUseChecker = TransitiveUseChecker(
TransitiveUseParams(
path: '.',
mainIgnores: {},
devIgnores: {'args', 'convert'},
),
);
// Blindly adds main and dev dependencies to a pubspec.yaml file (without consulting dart pub add).
const depsAddPerformer = DepsAddPerformer(
DepsAddParams(
path: '.',
// Example usage
main: {
// 'flutter: sdk=flutter',
// 'equatable: ^2.0.7',
// 'yaml: 3.1.3',
// 'any_where: hosted=any.where.com; version=1.1.1',
// 'some_path_source: path=../some_path_dependency',
// 'yaansi: git=https://github.com/akaiser/yaansi.git',
// 'some: git=https://anywhere.com/some.git; ref=some_ref; path=some/path',
},
// Example usage
dev: {
// 'flutter_test: sdk=flutter',
// 'test: ^1.25.0',
// 'build_runner: 2.4.15',
},
),
);
// Updates provided but only existing main and dev dependencies in a pubspec.yaml file.
const depsUpdatePerformer = DepsUpdatePerformer(
DepsUpdateParams(
path: '.',
// Example usage
main: {
// 'flutter: sdk=flutter',
// 'equatable: ^2.0.7',
// 'yaml: 3.1.3',
// 'any_where: hosted=any.where.com; version=1.1.1',
// 'some_path_source: path=../some_path_dependency',
// 'yaansi: git=https://github.com/akaiser/yaansi.git',
// 'some: git=https://anywhere.com/some.git; ref=some_ref; path=some/path',
},
// Example usage
dev: {
// 'flutter_test: sdk=flutter',
// 'test: ^1.25.0',
// 'build_runner: 2.4.15',
},
),
);
// Sorts main and dev dependencies in a pubspec.yaml file.
const depsSortPerformer = DepsSortPerformer(DepsSortParams(path: '.'));
try {
print(depsUsedChecker.perform());
print(depsUnusedChecker.perform());
print(transitiveUseChecker.perform());
print(depsAddPerformer.perform());
print(depsUpdatePerformer.perform());
print(depsSortPerformer.perform());
} on PerformerError catch (e) {
print(e.message);
}
}
```
## License
See the [LICENSE](LICENSE) file.
## Version history
See the [CHANGELOG.md](CHANGELOG.md) file.