mirror of
https://github.com/pese-git/cherrypick.git
synced 2026-03-25 13:01:14 +00:00
Compare commits
3 Commits
4953e917c9
...
cherrypick
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0651f74472 | ||
|
|
776f29945a | ||
|
|
49361f2f9e |
27
CHANGELOG.md
27
CHANGELOG.md
@@ -3,6 +3,33 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## 2026-01-29
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Packages with breaking changes:
|
||||||
|
|
||||||
|
- There are no breaking changes in this release.
|
||||||
|
|
||||||
|
Packages with other changes:
|
||||||
|
|
||||||
|
- [`cherrypick_annotations` - `v3.0.2`](#cherrypick_annotations---v302)
|
||||||
|
- [`cherrypick_generator` - `v3.0.2`](#cherrypick_generator---v302)
|
||||||
|
|
||||||
|
Packages graduated to a stable release (see pre-releases prior to the stable version for changelog entries):
|
||||||
|
|
||||||
|
- `cherrypick_annotations` - `v3.0.2`
|
||||||
|
- `cherrypick_generator` - `v3.0.2`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
#### `cherrypick_annotations` - `v3.0.2`
|
||||||
|
|
||||||
|
#### `cherrypick_generator` - `v3.0.2`
|
||||||
|
|
||||||
|
|
||||||
## 2025-10-20
|
## 2025-10-20
|
||||||
|
|
||||||
### Changes
|
### Changes
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ packages:
|
|||||||
path: "../cherrypick"
|
path: "../cherrypick"
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
collection:
|
collection:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 3.0.2
|
||||||
|
|
||||||
|
- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
|
||||||
|
|
||||||
## 3.0.2-dev.0
|
## 3.0.2-dev.0
|
||||||
|
|
||||||
- **REFACTOR**(generator): migrate cherrypick_generator to analyzer element2 API.
|
- **REFACTOR**(generator): migrate cherrypick_generator to analyzer element2 API.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: cherrypick_annotations
|
name: cherrypick_annotations
|
||||||
description: |
|
description: |
|
||||||
Set of annotations for CherryPick dependency injection library. Enables code generation and declarative DI for Dart & Flutter projects.
|
Set of annotations for CherryPick dependency injection library. Enables code generation and declarative DI for Dart & Flutter projects.
|
||||||
version: 3.0.2-dev.0
|
version: 3.0.2
|
||||||
homepage: https://cherrypick-di.netlify.app
|
homepage: https://cherrypick-di.netlify.app
|
||||||
documentation: https://cherrypick-di.netlify.app/docs/intro
|
documentation: https://cherrypick-di.netlify.app/docs/intro
|
||||||
repository: https://github.com/pese-git/cherrypick/cherrypick_annotations
|
repository: https://github.com/pese-git/cherrypick/cherrypick_annotations
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
## 3.0.2
|
||||||
|
|
||||||
|
- Graduate package to a stable release. See pre-releases prior to this version for changelog entries.
|
||||||
|
|
||||||
## 3.0.2-dev.0
|
## 3.0.2-dev.0
|
||||||
|
|
||||||
- **REFACTOR**(generator): migrate cherrypick_generator to analyzer element2 API.
|
- **REFACTOR**(generator): migrate cherrypick_generator to analyzer element2 API.
|
||||||
|
|||||||
@@ -179,10 +179,10 @@ class InjectGenerator extends GeneratorForAnnotation<ann.injectable> {
|
|||||||
// Determine nullability for field types like T? or Future<T?>
|
// Determine nullability for field types like T? or Future<T?>
|
||||||
bool isNullable =
|
bool isNullable =
|
||||||
dartType.nullabilitySuffix == NullabilitySuffix.question ||
|
dartType.nullabilitySuffix == NullabilitySuffix.question ||
|
||||||
(dartType is ParameterizedType &&
|
(dartType is ParameterizedType &&
|
||||||
(dartType).typeArguments.any(
|
(dartType).typeArguments.any(
|
||||||
(t) => t.nullabilitySuffix == NullabilitySuffix.question,
|
(t) => t.nullabilitySuffix == NullabilitySuffix.question,
|
||||||
));
|
));
|
||||||
|
|
||||||
return _ParsedInjectField(
|
return _ParsedInjectField(
|
||||||
fieldName: field.firstFragment.name2 ?? '',
|
fieldName: field.firstFragment.name2 ?? '',
|
||||||
@@ -207,11 +207,11 @@ class InjectGenerator extends GeneratorForAnnotation<ann.injectable> {
|
|||||||
String _generateInjectionLine(_ParsedInjectField field) {
|
String _generateInjectionLine(_ParsedInjectField field) {
|
||||||
final resolveMethod = field.isFuture
|
final resolveMethod = field.isFuture
|
||||||
? (field.isNullable
|
? (field.isNullable
|
||||||
? 'tryResolveAsync<${field.coreType}>'
|
? 'tryResolveAsync<${field.coreType}>'
|
||||||
: 'resolveAsync<${field.coreType}>')
|
: 'resolveAsync<${field.coreType}>')
|
||||||
: (field.isNullable
|
: (field.isNullable
|
||||||
? 'tryResolve<${field.coreType}>'
|
? 'tryResolve<${field.coreType}>'
|
||||||
: 'resolve<${field.coreType}>');
|
: 'resolve<${field.coreType}>');
|
||||||
|
|
||||||
final openCall = (field.scopeName != null && field.scopeName!.isNotEmpty)
|
final openCall = (field.scopeName != null && field.scopeName!.isNotEmpty)
|
||||||
? "CherryPick.openScope(scopeName: '${field.scopeName}')"
|
? "CherryPick.openScope(scopeName: '${field.scopeName}')"
|
||||||
|
|||||||
@@ -305,9 +305,8 @@ class AnnotationValidator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check if class has public methods
|
// Check if class has public methods
|
||||||
final publicMethods = classElement.methods2
|
final publicMethods =
|
||||||
.where((m) => m.isPublic)
|
classElement.methods2.where((m) => m.isPublic).toList();
|
||||||
.toList();
|
|
||||||
if (publicMethods.isEmpty) {
|
if (publicMethods.isEmpty) {
|
||||||
throw AnnotationValidationException(
|
throw AnnotationValidationException(
|
||||||
'Module class must have at least one public method',
|
'Module class must have at least one public method',
|
||||||
|
|||||||
@@ -190,24 +190,20 @@ class BindSpec {
|
|||||||
case BindingType.provide:
|
case BindingType.provide:
|
||||||
if (isAsyncProvide) {
|
if (isAsyncProvide) {
|
||||||
if (needsMultiline) {
|
if (needsMultiline) {
|
||||||
final lambdaIndent = (isSingleton || named != null)
|
final lambdaIndent =
|
||||||
? indent + 6
|
(isSingleton || named != null) ? indent + 6 : indent + 2;
|
||||||
: indent + 2;
|
final closingIndent =
|
||||||
final closingIndent = (isSingleton || named != null)
|
(isSingleton || named != null) ? indent + 4 : indent;
|
||||||
? indent + 4
|
|
||||||
: indent;
|
|
||||||
return '.toProvideAsync(\n${' ' * lambdaIndent}() => $methodName($argsStr),\n${' ' * closingIndent})';
|
return '.toProvideAsync(\n${' ' * lambdaIndent}() => $methodName($argsStr),\n${' ' * closingIndent})';
|
||||||
} else {
|
} else {
|
||||||
return '.toProvideAsync(() => $methodName($argsStr))';
|
return '.toProvideAsync(() => $methodName($argsStr))';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (needsMultiline) {
|
if (needsMultiline) {
|
||||||
final lambdaIndent = (isSingleton || named != null)
|
final lambdaIndent =
|
||||||
? indent + 6
|
(isSingleton || named != null) ? indent + 6 : indent + 2;
|
||||||
: indent + 2;
|
final closingIndent =
|
||||||
final closingIndent = (isSingleton || named != null)
|
(isSingleton || named != null) ? indent + 4 : indent;
|
||||||
? indent + 4
|
|
||||||
: indent;
|
|
||||||
return '.toProvide(\n${' ' * lambdaIndent}() => $methodName($argsStr),\n${' ' * closingIndent})';
|
return '.toProvide(\n${' ' * lambdaIndent}() => $methodName($argsStr),\n${' ' * closingIndent})';
|
||||||
} else {
|
} else {
|
||||||
return '.toProvide(() => $methodName($argsStr))';
|
return '.toProvide(() => $methodName($argsStr))';
|
||||||
@@ -311,9 +307,8 @@ class BindSpec {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
final bindingType = hasInstance
|
final bindingType =
|
||||||
? BindingType.instance
|
hasInstance ? BindingType.instance : BindingType.provide;
|
||||||
: BindingType.provide;
|
|
||||||
|
|
||||||
// PROHIBIT @params with @instance bindings!
|
// PROHIBIT @params with @instance bindings!
|
||||||
if (bindingType == BindingType.instance && hasParams) {
|
if (bindingType == BindingType.instance && hasParams) {
|
||||||
|
|||||||
@@ -53,9 +53,9 @@ class CherryPickGeneratorException extends InvalidGenerationSourceError {
|
|||||||
this.suggestion,
|
this.suggestion,
|
||||||
this.context,
|
this.context,
|
||||||
}) : super(
|
}) : super(
|
||||||
_formatMessage(message, category, suggestion, context, element),
|
_formatMessage(message, category, suggestion, context, element),
|
||||||
element: element,
|
element: element,
|
||||||
);
|
);
|
||||||
|
|
||||||
static String _formatMessage(
|
static String _formatMessage(
|
||||||
String message,
|
String message,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ name: cherrypick_generator
|
|||||||
description: |
|
description: |
|
||||||
Source code generator for the cherrypick dependency injection system. Processes annotations to generate binding and module code for Dart & Flutter projects.
|
Source code generator for the cherrypick dependency injection system. Processes annotations to generate binding and module code for Dart & Flutter projects.
|
||||||
|
|
||||||
version: 3.0.2-dev.0
|
version: 3.0.2
|
||||||
homepage: https://cherrypick-di.netlify.app
|
homepage: https://cherrypick-di.netlify.app
|
||||||
documentation: https://cherrypick-di.netlify.app/docs/intro
|
documentation: https://cherrypick-di.netlify.app/docs/intro
|
||||||
repository: https://github.com/pese-git/cherrypick/cherrypick_generator
|
repository: https://github.com/pese-git/cherrypick/cherrypick_generator
|
||||||
@@ -19,7 +19,7 @@ environment:
|
|||||||
|
|
||||||
# Add regular dependencies here.
|
# Add regular dependencies here.
|
||||||
dependencies:
|
dependencies:
|
||||||
cherrypick_annotations: ^3.0.2-dev.0
|
cherrypick_annotations: ^3.0.2
|
||||||
analyzer: ">=7.5.9 <8.0.0"
|
analyzer: ">=7.5.9 <8.0.0"
|
||||||
dart_style: ^3.0.0
|
dart_style: ^3.0.0
|
||||||
build: ^3.0.0
|
build: ^3.0.0
|
||||||
|
|||||||
@@ -127,28 +127,28 @@ packages:
|
|||||||
path: "../../cherrypick"
|
path: "../../cherrypick"
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
cherrypick_annotations:
|
cherrypick_annotations:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: "../../cherrypick_annotations"
|
path: "../../cherrypick_annotations"
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "3.0.1"
|
version: "3.0.2-dev.0"
|
||||||
cherrypick_flutter:
|
cherrypick_flutter:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: "../../cherrypick_flutter"
|
path: "../../cherrypick_flutter"
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
cherrypick_generator:
|
cherrypick_generator:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
path: "../../cherrypick_generator"
|
path: "../../cherrypick_generator"
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "3.0.1"
|
version: "3.0.2-dev.0"
|
||||||
clock:
|
clock:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -574,4 +574,4 @@ packages:
|
|||||||
version: "3.1.3"
|
version: "3.1.3"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.8.0 <4.0.0"
|
dart: ">=3.8.0 <4.0.0"
|
||||||
flutter: ">=3.32.0"
|
flutter: ">=3.18.0-18.0.pre.54"
|
||||||
|
|||||||
@@ -175,21 +175,21 @@ packages:
|
|||||||
path: "../../cherrypick"
|
path: "../../cherrypick"
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
cherrypick_annotations:
|
cherrypick_annotations:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: "../../cherrypick_annotations"
|
path: "../../cherrypick_annotations"
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "3.0.1"
|
version: "3.0.2-dev.0"
|
||||||
cherrypick_generator:
|
cherrypick_generator:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
path: "../../cherrypick_generator"
|
path: "../../cherrypick_generator"
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "3.0.0"
|
version: "3.0.2-dev.0"
|
||||||
cli_config:
|
cli_config:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -920,7 +920,7 @@ packages:
|
|||||||
path: "../../talker_cherrypick_logger"
|
path: "../../talker_cherrypick_logger"
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "3.0.1"
|
version: "3.0.2"
|
||||||
talker_dio_logger:
|
talker_dio_logger:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@@ -1131,4 +1131,4 @@ packages:
|
|||||||
version: "2.2.2"
|
version: "2.2.2"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.8.0 <4.0.0"
|
dart: ">=3.8.0 <4.0.0"
|
||||||
flutter: ">=3.32.0"
|
flutter: ">=3.29.0"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ dependencies:
|
|||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
||||||
cherrypick: any
|
cherrypick: any
|
||||||
cherrypick_annotations: ^3.0.2-dev.0
|
cherrypick_annotations: ^3.0.2
|
||||||
|
|
||||||
dio: ^5.4.0
|
dio: ^5.4.0
|
||||||
retrofit: ^4.0.3
|
retrofit: ^4.0.3
|
||||||
@@ -38,7 +38,7 @@ dev_dependencies:
|
|||||||
flutter_lints: ^6.0.0
|
flutter_lints: ^6.0.0
|
||||||
|
|
||||||
build_runner: ^2.5.0
|
build_runner: ^2.5.0
|
||||||
cherrypick_generator: ^3.0.2-dev.0
|
cherrypick_generator: ^3.0.2
|
||||||
|
|
||||||
json_serializable: ^6.9.0
|
json_serializable: ^6.9.0
|
||||||
retrofit_generator: ^10.0.5
|
retrofit_generator: ^10.0.5
|
||||||
|
|||||||
Reference in New Issue
Block a user