mirror of
https://github.com/pese-git/cherrypick.git
synced 2026-01-24 13:47:24 +00:00
docs(annotations): improve API documentation and usage example
- Add detailed English doc comments for all main annotations (inject, injectable, instance, provide, scope, etc) - Add fully documented example/example.dart illustrating real-world DI scenario - Clarify stub sections (Module class, generated mixins) - Aligns package with pub.dev quality and best practice requirements No breaking changes.
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
library;
|
||||
|
||||
//
|
||||
// Copyright 2021 Sergey Penkovsky (sergey.penkovsky@gmail.com)
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@@ -13,6 +11,24 @@ library;
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
/// Annotations for use with the CherryPick dependency injection generator.
|
||||
///
|
||||
/// These annotations are used on classes, methods, fields or parameters to
|
||||
/// describe how they should participate in dependency injection.
|
||||
/// See: https://pub.dev/packages/cherrypick
|
||||
///
|
||||
/// Example:
|
||||
/// ```dart
|
||||
/// import 'package:cherrypick_annotations/cherrypick_annotations.dart';
|
||||
///
|
||||
/// @injectable()
|
||||
/// class MyService {
|
||||
/// @inject()
|
||||
/// late final Logger logger;
|
||||
/// }
|
||||
/// ```
|
||||
library;
|
||||
|
||||
export 'src/module.dart';
|
||||
export 'src/provide.dart';
|
||||
export 'src/instance.dart';
|
||||
|
||||
@@ -38,5 +38,6 @@ import 'package:meta/meta.dart';
|
||||
/// ```
|
||||
@experimental
|
||||
final class inject {
|
||||
/// Creates an [inject] annotation for field injection.
|
||||
const inject();
|
||||
}
|
||||
|
||||
@@ -39,5 +39,6 @@ import 'package:meta/meta.dart';
|
||||
/// After running the generator, the mixin (`_\$ProfileScreen`) will be available to help auto-inject all [@inject] fields in your widget/service/controller.
|
||||
@experimental
|
||||
final class injectable {
|
||||
/// Creates an [injectable] annotation for classes.
|
||||
const injectable();
|
||||
}
|
||||
|
||||
@@ -45,5 +45,6 @@ import 'package:meta/meta.dart';
|
||||
/// See also: [@singleton]
|
||||
@experimental
|
||||
final class instance {
|
||||
/// Creates an [instance] annotation for classes or providers.
|
||||
const instance();
|
||||
}
|
||||
|
||||
@@ -39,6 +39,6 @@ import 'package:meta/meta.dart';
|
||||
/// See also: [@singleton], [@instance], [@params], [@named]
|
||||
@experimental
|
||||
final class provide {
|
||||
/// Creates a [provide] annotation.
|
||||
/// Creates a [provide] annotation for marking provider methods/classes in DI modules.
|
||||
const provide();
|
||||
}
|
||||
|
||||
@@ -49,5 +49,7 @@ import 'package:meta/meta.dart';
|
||||
final class scope {
|
||||
/// The name/key of the DI scope from which to resolve this dependency.
|
||||
final String? name;
|
||||
|
||||
/// Creates a [scope] annotation specifying which DI scope to use for the dependency resolution.
|
||||
const scope(this.name);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user