mirror of
https://github.com/pese-git/cherrypick.git
synced 2026-01-24 21:57:58 +00:00
Compare commits
6 Commits
cherrypick
...
cherrypick
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8340c6a84 | ||
|
|
62a1655728 | ||
|
|
fc941c0041 | ||
|
|
5161fa19b6 | ||
|
|
8093f077b1 | ||
|
|
45b93db6f5 |
33
CHANGELOG.md
33
CHANGELOG.md
@@ -3,6 +3,39 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## 2025-05-22
|
||||
|
||||
### Changes
|
||||
|
||||
---
|
||||
|
||||
Packages with breaking changes:
|
||||
|
||||
- There are no breaking changes in this release.
|
||||
|
||||
Packages with other changes:
|
||||
|
||||
- [`cherrypick` - `v2.2.0-dev.1`](#cherrypick---v220-dev1)
|
||||
- [`cherrypick_generator` - `v1.1.0-dev.1`](#cherrypick_generator---v110-dev1)
|
||||
- [`cherrypick_flutter` - `v1.1.2-dev.1`](#cherrypick_flutter---v112-dev1)
|
||||
|
||||
Packages with dependency updates only:
|
||||
|
||||
> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
|
||||
|
||||
- `cherrypick_flutter` - `v1.1.2-dev.1`
|
||||
|
||||
---
|
||||
|
||||
#### `cherrypick` - `v2.2.0-dev.1`
|
||||
|
||||
- **FIX**: fix warnings.
|
||||
|
||||
#### `cherrypick_generator` - `v1.1.0-dev.1`
|
||||
|
||||
- **FIX**: optimize code.
|
||||
|
||||
|
||||
## 2025-05-22
|
||||
|
||||
### Changes
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
## 2.2.0-dev.1
|
||||
|
||||
- **FIX**: fix warnings.
|
||||
|
||||
## 2.2.0-dev.0
|
||||
|
||||
- **FEAT**: Add async dependency resolution and enhance example.
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import 'dart:async';
|
||||
import 'package:meta/meta.dart';
|
||||
import 'package:cherrypick/cherrypick.dart';
|
||||
|
||||
class AppModule extends Module {
|
||||
@@ -95,21 +94,19 @@ class NetworkDataRepository implements DataRepository {
|
||||
}
|
||||
|
||||
abstract class ApiClient {
|
||||
Future sendRequest({@required String url, String token, Map requestBody});
|
||||
Future sendRequest({String url, String token, Map requestBody});
|
||||
}
|
||||
|
||||
class ApiClientMock implements ApiClient {
|
||||
@override
|
||||
Future sendRequest(
|
||||
{@required String? url, String? token, Map? requestBody}) async {
|
||||
Future sendRequest({String? url, String? token, Map? requestBody}) async {
|
||||
return 'Local Data';
|
||||
}
|
||||
}
|
||||
|
||||
class ApiClientImpl implements ApiClient {
|
||||
@override
|
||||
Future sendRequest(
|
||||
{@required String? url, String? token, Map? requestBody}) async {
|
||||
Future sendRequest({String? url, String? token, Map? requestBody}) async {
|
||||
return 'Network data';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: cherrypick
|
||||
description: Cherrypick is a small dependency injection (DI) library for dart/flutter projects.
|
||||
version: 2.2.0-dev.0
|
||||
version: 2.2.0-dev.1
|
||||
homepage: https://pese-git.github.io/cherrypick-site/
|
||||
documentation: https://github.com/pese-git/cherrypick/wiki
|
||||
repository: https://github.com/pese-git/cherrypick
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: cherrypick_annotations
|
||||
description: A starting point for Dart libraries or applications.
|
||||
description: Collection annotations.
|
||||
version: 1.1.0-dev.0
|
||||
documentation: https://github.com/pese-git/cherrypick/wiki
|
||||
repository: https://github.com/pese-git/cherrypick
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
## 1.1.2-dev.1
|
||||
|
||||
- Update a dependency to the latest release.
|
||||
|
||||
## 1.1.2-dev.0
|
||||
|
||||
- **FIX**: fix warning.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: cherrypick_flutter
|
||||
description: "Flutter library that allows access to the root scope through the context using `CherryPickProvider`."
|
||||
version: 1.1.2-dev.0
|
||||
version: 1.1.2-dev.1
|
||||
homepage: https://pese-git.github.io/cherrypick-site/
|
||||
documentation: https://github.com/pese-git/cherrypick/wiki
|
||||
repository: https://github.com/pese-git/cherrypick
|
||||
@@ -13,7 +13,7 @@ environment:
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
cherrypick: ^2.2.0-dev.0
|
||||
cherrypick: ^2.2.0-dev.1
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
## 1.1.0-dev.1
|
||||
|
||||
- **FIX**: optimize code.
|
||||
|
||||
## 1.1.0-dev.0
|
||||
|
||||
- **FIX**: fix warning conflict with names.
|
||||
|
||||
@@ -17,6 +17,11 @@ import 'package:source_gen/source_gen.dart';
|
||||
import 'bind_parameters_spec.dart';
|
||||
import 'metadata_utils.dart';
|
||||
|
||||
enum BindingType {
|
||||
instance,
|
||||
provide;
|
||||
}
|
||||
|
||||
/// ---------------------------------------------------------------------------
|
||||
/// BindSpec -- describes a binding specification generated for a dependency.
|
||||
///
|
||||
@@ -59,7 +64,7 @@ class BindSpec {
|
||||
final List<BindParameterSpec> parameters;
|
||||
|
||||
/// Binding type: 'instance' or 'provide' (@instance or @provide)
|
||||
final String bindingType; // 'instance' | 'provide'
|
||||
final BindingType bindingType; // 'instance' | 'provide'
|
||||
|
||||
/// True if the method is asynchronous and uses instance binding (Future)
|
||||
final bool isAsyncInstance;
|
||||
@@ -116,16 +121,14 @@ class BindSpec {
|
||||
String _generateWithParamsProvideClause(int indent) {
|
||||
// Safe variable name for parameters.
|
||||
const paramVar = 'args';
|
||||
final fnArgs = parameters
|
||||
.map((p) => p.isParams ? paramVar : p.generateArg(paramVar))
|
||||
.join(', ');
|
||||
final fnArgs = parameters.map((p) => p.generateArg(paramVar)).join(', ');
|
||||
final multiLine = fnArgs.length > 60 || fnArgs.contains('\n');
|
||||
switch (bindingType) {
|
||||
case 'instance':
|
||||
case BindingType.instance:
|
||||
return isAsyncInstance
|
||||
? '.toInstanceAsync(($fnArgs) => $methodName($fnArgs))'
|
||||
: '.toInstance(($fnArgs) => $methodName($fnArgs))';
|
||||
case 'provide':
|
||||
case BindingType.provide:
|
||||
default:
|
||||
if (isAsyncProvide) {
|
||||
return multiLine
|
||||
@@ -144,11 +147,11 @@ class BindSpec {
|
||||
final argsStr = parameters.map((p) => p.generateArg()).join(', ');
|
||||
final multiLine = argsStr.length > 60 || argsStr.contains('\n');
|
||||
switch (bindingType) {
|
||||
case 'instance':
|
||||
case BindingType.instance:
|
||||
return isAsyncInstance
|
||||
? '.toInstanceAsync($methodName($argsStr))'
|
||||
: '.toInstance($methodName($argsStr))';
|
||||
case 'provide':
|
||||
case BindingType.provide:
|
||||
default:
|
||||
if (isAsyncProvide) {
|
||||
return multiLine
|
||||
@@ -212,7 +215,8 @@ class BindSpec {
|
||||
element: method,
|
||||
);
|
||||
}
|
||||
final bindingType = hasInstance ? 'instance' : 'provide';
|
||||
final bindingType =
|
||||
hasInstance ? BindingType.instance : BindingType.provide;
|
||||
|
||||
// -- Extract inner type for Future<T> and set async flags.
|
||||
bool isAsyncInstance = false;
|
||||
@@ -220,8 +224,8 @@ class BindSpec {
|
||||
final futureInnerType = _extractFutureInnerType(returnType);
|
||||
if (futureInnerType != null) {
|
||||
returnType = futureInnerType;
|
||||
if (bindingType == 'instance') isAsyncInstance = true;
|
||||
if (bindingType == 'provide') isAsyncProvide = true;
|
||||
if (bindingType == BindingType.instance) isAsyncInstance = true;
|
||||
if (bindingType == BindingType.provide) isAsyncProvide = true;
|
||||
}
|
||||
|
||||
return BindSpec(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
name: cherrypick_generator
|
||||
description: Code generator for cherrypick annotations
|
||||
version: 1.1.0-dev.0
|
||||
version: 1.1.0-dev.1
|
||||
documentation: https://github.com/pese-git/cherrypick/wiki
|
||||
repository: https://github.com/pese-git/cherrypick
|
||||
issue_tracker: https://github.com/pese-git/cherrypick/issues
|
||||
@@ -11,13 +11,13 @@ environment:
|
||||
# Add regular dependencies here.
|
||||
dependencies:
|
||||
cherrypick_annotations: ^1.1.0-dev.0
|
||||
analyzer: any
|
||||
dart_style: any
|
||||
build: any
|
||||
build_runner: any
|
||||
source_gen: any
|
||||
analyzer: ^6.7.0
|
||||
dart_style: ^2.3.7
|
||||
build: ^2.4.1
|
||||
build_runner: ^2.4.13
|
||||
source_gen: ^1.5.0
|
||||
|
||||
dev_dependencies:
|
||||
lints: ^5.0.0
|
||||
mockito: any
|
||||
mockito: ^5.4.4
|
||||
test: ^1.25.8
|
||||
|
||||
@@ -132,28 +132,28 @@ packages:
|
||||
path: "../../cherrypick"
|
||||
relative: true
|
||||
source: path
|
||||
version: "2.1.0"
|
||||
version: "2.2.0-dev.0"
|
||||
cherrypick_annotations:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "../../cherrypick_annotations"
|
||||
relative: true
|
||||
source: path
|
||||
version: "1.0.0"
|
||||
version: "1.1.0-dev.0"
|
||||
cherrypick_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "../../cherrypick_flutter"
|
||||
relative: true
|
||||
source: path
|
||||
version: "1.1.1"
|
||||
version: "1.1.2-dev.0"
|
||||
cherrypick_generator:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
path: "../../cherrypick_generator"
|
||||
relative: true
|
||||
source: path
|
||||
version: "1.0.0"
|
||||
version: "1.1.0-dev.0"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -243,10 +243,10 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c"
|
||||
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.0"
|
||||
version: "5.0.0"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
@@ -344,10 +344,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235"
|
||||
sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.0"
|
||||
version: "5.0.0"
|
||||
logging:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
@@ -11,8 +11,8 @@ environment:
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
cherrypick: ^2.2.0-dev.0
|
||||
cherrypick_flutter: ^1.1.2-dev.0
|
||||
cherrypick: ^2.2.0-dev.1
|
||||
cherrypick_flutter: ^1.1.2-dev.1
|
||||
|
||||
cherrypick_annotations: ^1.1.0-dev.0
|
||||
|
||||
@@ -22,10 +22,10 @@ dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
||||
flutter_lints: ^4.0.0
|
||||
flutter_lints: ^5.0.0
|
||||
|
||||
cherrypick_generator: ^1.1.0-dev.0
|
||||
build_runner: any
|
||||
cherrypick_generator: ^1.1.0-dev.1
|
||||
build_runner: ^2.4.13
|
||||
|
||||
# For information on the generic Dart part of this file, see the
|
||||
# following page: https://dart.dev/tools/pub/pubspec
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:auto_route/auto_route.dart';
|
||||
import 'app_router.gr.dart';
|
||||
|
||||
@AutoRouterConfig()
|
||||
class AppRouter extends $AppRouter {
|
||||
class AppRouter extends RootStackRouter {
|
||||
@override
|
||||
List<AutoRoute> get routes => [
|
||||
AutoRoute(page: PostsRoute.page, initial: true),
|
||||
|
||||
@@ -42,26 +42,26 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: auto_route
|
||||
sha256: eb33554581a0a4aa7e6da0f13a44291a55bf71359012f1d9feb41634ff908ff8
|
||||
sha256: "1d1bd908a1fec327719326d5d0791edd37f16caff6493c01003689fb03315ad7"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.9.2"
|
||||
version: "9.3.0+1"
|
||||
auto_route_generator:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: auto_route_generator
|
||||
sha256: "11067a3bcd643812518fe26c0c9ec073990286cabfd9d74b6da9ef9b913c4d22"
|
||||
sha256: c9086eb07271e51b44071ad5cff34e889f3156710b964a308c2ab590769e79e6
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.3.2"
|
||||
version: "9.0.0"
|
||||
bloc:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: bloc
|
||||
sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e"
|
||||
sha256: "52c10575f4445c61dd9e0cafcc6356fdd827c4c64dd7945ef3c4105f6b6ac189"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.1.4"
|
||||
version: "9.0.0"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -156,21 +156,21 @@ packages:
|
||||
path: "../../cherrypick"
|
||||
relative: true
|
||||
source: path
|
||||
version: "2.1.0"
|
||||
version: "2.2.0-dev.0"
|
||||
cherrypick_annotations:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "../../cherrypick_annotations"
|
||||
relative: true
|
||||
source: path
|
||||
version: "1.0.0"
|
||||
version: "1.1.0-dev.0"
|
||||
cherrypick_generator:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
path: "../../cherrypick_generator"
|
||||
relative: true
|
||||
source: path
|
||||
version: "1.0.0"
|
||||
version: "1.1.0-dev.0"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -284,18 +284,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_bloc
|
||||
sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a
|
||||
sha256: cf51747952201a455a1c840f8171d273be009b932c75093020f9af64f2123e38
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.1.6"
|
||||
version: "9.1.1"
|
||||
flutter_lints:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c"
|
||||
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.0"
|
||||
version: "5.0.0"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
@@ -417,10 +417,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235"
|
||||
sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.0"
|
||||
version: "5.0.0"
|
||||
logging:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -553,10 +553,10 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: retrofit_generator
|
||||
sha256: "8dfc406cdfa171f33cbd21bf5bd8b6763548cc217de19cdeaa07a76727fac4ca"
|
||||
sha256: f76fdb2b66854690d5a332e7364d7561fc9dc2b3c924d7956ab8070495e21f6a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.2.1"
|
||||
version: "9.1.5"
|
||||
shelf:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -658,14 +658,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
tuple:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: tuple
|
||||
sha256: a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
@@ -12,15 +12,15 @@ dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
|
||||
cherrypick: ^2.2.0-dev.0
|
||||
cherrypick: ^2.2.0-dev.1
|
||||
cherrypick_annotations: ^1.1.0-dev.0
|
||||
|
||||
dio: ^5.4.0
|
||||
retrofit: ^4.0.3
|
||||
freezed_annotation: ^2.0.0
|
||||
freezed_annotation: ^2.3.2
|
||||
dartz: ^0.10.1
|
||||
flutter_bloc: ^8.1.2
|
||||
auto_route: ^7.8.4
|
||||
flutter_bloc: ^9.1.1
|
||||
auto_route: ^9.3.0+1
|
||||
|
||||
cupertino_icons: ^1.0.8
|
||||
|
||||
@@ -28,15 +28,15 @@ dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
||||
flutter_lints: ^4.0.0
|
||||
flutter_lints: ^5.0.0
|
||||
|
||||
cherrypick_generator: ^1.1.0-dev.0
|
||||
build_runner: any
|
||||
cherrypick_generator: ^1.1.0-dev.1
|
||||
build_runner: 2.4.13
|
||||
|
||||
retrofit_generator: ^8.0.4
|
||||
retrofit_generator: ^9.1.5
|
||||
freezed: ^2.3.2
|
||||
json_serializable: any
|
||||
auto_route_generator: ^7.3.2
|
||||
json_serializable: ^6.9.0
|
||||
auto_route_generator: ^9.0.0
|
||||
|
||||
flutter:
|
||||
|
||||
|
||||
@@ -24,8 +24,11 @@ scripts:
|
||||
run: |
|
||||
melos exec --scope="postly" -- dart run build_runner build --delete-conflicting-outputs
|
||||
|
||||
outdated:
|
||||
exec: dart pub outdated
|
||||
|
||||
upgrade:
|
||||
exec: darp pub upgrade
|
||||
exec: dart pub upgrade --major-versions
|
||||
|
||||
drop:
|
||||
exec: flutter clean
|
||||
|
||||
Reference in New Issue
Block a user