Skip to content

Commit 04cea86

Browse files
ci: bump version to v0.15.0
1 parent 22cd639 commit 04cea86

9 files changed

Lines changed: 133 additions & 83 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## [0.15.0]
4+
5+
- Released @ 6/2025 (UTC)
6+
- Update dependencies
7+
38
## [0.14.4]
49

510
- Released @ 6/2025 (UTC)

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Dart & Flutter Packages by dev-cetera.com & contributors.
66
[![sponsor](https://img.shields.io/badge/sponsor-grey?logo=github-sponsors)](https://github.com/sponsors/dev-cetera)
77
[![patreon](https://img.shields.io/badge/patreon-grey?logo=patreon)](https://www.patreon.com/c/RobertMollentze)
88
[![pub](https://img.shields.io/pub/v/df_di.svg)](https://pub.dev/packages/df_di)
9-
[![tag](https://img.shields.io/badge/tag-v0.14.4-purple?logo=github)](https://github.com/dev-cetera/df_di/tree/v0.14.4)
9+
[![tag](https://img.shields.io/badge/tag-v0.15.0-purple?logo=github)](https://github.com/dev-cetera/df_di/tree/v0.15.0)
1010
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/dev-cetera/df_di/main/LICENSE)
1111

1212
---
@@ -227,4 +227,3 @@ If you're enjoying this package and find it valuable, consider showing your appr
227227
## 🧑‍⚖️ License
228228

229229
This project is released under the [MIT License](https://raw.githubusercontent.com/dev-cetera/df_di/main/LICENSE). See [LICENSE](https://raw.githubusercontent.com/dev-cetera/df_di/main/LICENSE) for more information.
230-

example/example.dart

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,18 +76,20 @@ Future<void> main() async {
7676
// This simulates a part of your application that initializes and provides
7777
// the service, for example, after a user logs in.
7878
Future.delayed(const Duration(seconds: 2), () {
79-
DI.global.register<UserService>(
80-
UserService(123),
81-
// Handle what happens when we unregister the dependency.
82-
onUnregister: (result) {
83-
if (result.isOk()) {
84-
final userService = result.unwrap();
85-
// ignore: void_checks
86-
return Future.value(userService.dispose().unwrap());
87-
}
88-
return null;
89-
},
90-
).end;
79+
DI.global
80+
.register<UserService>(
81+
UserService(123),
82+
// Handle what happens when we unregister the dependency.
83+
onUnregister: (result) {
84+
if (result.isOk()) {
85+
final userService = result.unwrap();
86+
// ignore: void_checks
87+
return Future.value(userService.dispose().unwrap());
88+
}
89+
return null;
90+
},
91+
)
92+
.end;
9193
});
9294

9395
// Await the service and use it.

lib/src/di/_di_base.dart

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,11 @@ base class DIBase {
4646
Option<Iterable<DI>> children() {
4747
UNSAFE:
4848
return childrenContainer.map(
49-
(e) => e.registry.unsortedDependencies.map(
50-
(e) {
51-
final value = e.transf<Lazy<DI>>().value;
52-
final resolvable = value.then((e) => e.singleton).flatten();
53-
return resolvable.sync().unwrap().unwrap();
54-
},
55-
),
49+
(e) => e.registry.unsortedDependencies.map((e) {
50+
final value = e.transf<Lazy<DI>>().value;
51+
final resolvable = value.then((e) => e.singleton).flatten();
52+
return resolvable.sync().unwrap().unwrap();
53+
}),
5654
);
5755
}
5856

@@ -73,7 +71,9 @@ base class DIBase {
7371
final metadata = DependencyMetadata(
7472
index: Some(_indexIncrementer++),
7573
groupEntity: g,
76-
onUnregister: onUnregister != null ? Some((e) => onUnregister(e.transf())) : const None(),
74+
onUnregister: onUnregister != null
75+
? Some((e) => onUnregister(e.transf()))
76+
: const None(),
7777
);
7878
final a = Resolvable(
7979
() => consec(value, (e) => consec(onRegister?.call(e), (_) => e)),
@@ -141,7 +141,9 @@ base class DIBase {
141141
}) {
142142
assert(T != Object, 'T must be specified and cannot be Object.');
143143
UNSAFE:
144-
final g = dependency.metadata.isSome() ? dependency.metadata.unwrap().groupEntity : focusGroup;
144+
final g = dependency.metadata.isSome()
145+
? dependency.metadata.unwrap().groupEntity
146+
: focusGroup;
145147
if (checkExisting) {
146148
final option = getDependency<T>(groupEntity: g, traverse: false);
147149
if (option.isSome()) {

lib/src/di/_di_registry.dart

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,14 @@ final class DIRegistry {
3333
/// A snapshot describing the current state of the dependencies.
3434
@pragma('vm:prefer-inline')
3535
TRegistryState get state => TRegistryState.unmodifiable(
36-
_state,
37-
).map((k, v) => MapEntry(k, Map.unmodifiable(v)));
36+
_state,
37+
).map((k, v) => MapEntry(k, Map.unmodifiable(v)));
3838

3939
/// Returns an iterable of all dependencies in the registry, unsorted.
4040
@protected
4141
@pragma('vm:prefer-inline')
42-
Iterable<Dependency> get unsortedDependencies => _state.entries.expand((e) => e.value.values);
42+
Iterable<Dependency> get unsortedDependencies =>
43+
_state.entries.expand((e) => e.value.values);
4344

4445
/// Returns a list of all dependencies, sorted in reverse order of registration (newest first).
4546
/// Dependencies without a registration index are placed at the end.
@@ -76,7 +77,9 @@ final class DIRegistry {
7677
/// subtypes.
7778
@pragma('vm:prefer-inline')
7879
Iterable<Dependency> dependenciesWhereTypeK(Entity typeEntity) {
79-
return reversedDependencies.map((e) => e.typeEntity == typeEntity ? e : null).nonNulls;
80+
return reversedDependencies
81+
.map((e) => e.typeEntity == typeEntity ? e : null)
82+
.nonNulls;
8083
}
8184

8285
/// A snapshot of the current group entities within [state].
@@ -110,7 +113,8 @@ final class DIRegistry {
110113
bool containsDependency<T extends Object>({
111114
Entity groupEntity = const DefaultEntity(),
112115
}) {
113-
return _state[groupEntity]?.values.any((e) => e.value is Resolvable<T>) == true;
116+
return _state[groupEntity]?.values.any((e) => e.value is Resolvable<T>) ==
117+
true;
114118
}
115119

116120
/// Checks if any dependency with the exact [type] exists under the specified
@@ -126,8 +130,8 @@ final class DIRegistry {
126130
final a = TypeEntity(Sync, [type]);
127131
final b = TypeEntity(Async, [type]);
128132
return _state[groupEntity]?.values.any(
129-
(e) => e.typeEntity == a || e.typeEntity == b,
130-
) ==
133+
(e) => e.typeEntity == a || e.typeEntity == b,
134+
) ==
131135
true;
132136
}
133137

@@ -144,8 +148,8 @@ final class DIRegistry {
144148
final a = TypeEntity(Sync, [typeEntity]);
145149
final b = TypeEntity(Async, [typeEntity]);
146150
return _state[groupEntity]?.values.any(
147-
(e) => e.typeEntity == a || e.typeEntity == b,
148-
) ==
151+
(e) => e.typeEntity == a || e.typeEntity == b,
152+
) ==
149153
true;
150154
}
151155

@@ -156,7 +160,9 @@ final class DIRegistry {
156160
Entity groupEntity = const DefaultEntity(),
157161
}) {
158162
return Option.from(
159-
_state[groupEntity]?.values.firstWhereOrNull((e) => e.value is Resolvable<T>)?.transf<T>(),
163+
_state[groupEntity]?.values
164+
.firstWhereOrNull((e) => e.value is Resolvable<T>)
165+
?.transf<T>(),
160166
);
161167
}
162168

@@ -192,8 +198,8 @@ final class DIRegistry {
192198
final b = TypeEntity(Async, [typeEntity]);
193199
return Option.from(
194200
_state[groupEntity]?.values.firstWhereOrNull(
195-
(e) => e.typeEntity == a || e.typeEntity == b,
196-
),
201+
(e) => e.typeEntity == a || e.typeEntity == b,
202+
),
197203
);
198204
}
199205

@@ -217,7 +223,9 @@ final class DIRegistry {
217223
if (group == null) {
218224
return const None();
219225
}
220-
final key = group.entries.firstWhereOrNull((e) => e.value.value is Resolvable<T>)?.key;
226+
final key = group.entries
227+
.firstWhereOrNull((e) => e.value.value is Resolvable<T>)
228+
?.key;
221229
if (key == null) {
222230
return const None();
223231
}

lib/src/di/_mixins/supports_mixin_k.dart

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,7 @@ base mixin SupportsMixinK on DIBase {
5050
).map(
5151
(e) => e.isSync()
5252
? e.sync().unwrap()
53-
: Sync.err(
54-
Err(
55-
'Called getSyncK() an async dependency.',
56-
),
57-
),
53+
: Sync.err(Err('Called getSyncK() an async dependency.')),
5854
);
5955
}
6056

@@ -167,10 +163,10 @@ base mixin SupportsMixinK on DIBase {
167163
final value = e.unwrap();
168164
registry.removeDependencyK(typeEntity, groupEntity: g).end();
169165
final metadata = option.unwrap().unwrap().metadata.map(
170-
(e) => e.copyWith(
171-
preemptivetypeEntity: TypeEntity(Sync, [typeEntity]),
172-
),
173-
);
166+
(e) => e.copyWith(
167+
preemptivetypeEntity: TypeEntity(Sync, [typeEntity]),
168+
),
169+
);
174170
registerDependencyK(
175171
dependency: Dependency(Sync.okValue(value), metadata: metadata),
176172
checkExisting: false,
@@ -188,7 +184,9 @@ base mixin SupportsMixinK on DIBase {
188184
bool checkExisting = false,
189185
}) {
190186
UNSAFE:
191-
final g = dependency.metadata.isSome() ? dependency.metadata.unwrap().groupEntity : focusGroup;
187+
final g = dependency.metadata.isSome()
188+
? dependency.metadata.unwrap().groupEntity
189+
: focusGroup;
192190
if (checkExisting) {
193191
final option = getDependencyK(
194192
dependency.typeEntity,

lib/src/di/_mixins/supports_unregister_all.dart

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ base mixin SupportsUnregisterAll on DIBase {
3030
if (onBeforeUnregister != null) {
3131
seq.then((_) {
3232
return Resolvable(
33-
() => consec(onBeforeUnregister(Ok(dependency)), (_) => const None()),
33+
() =>
34+
consec(onBeforeUnregister(Ok(dependency)), (_) => const None()),
3435
);
3536
}).end();
3637
}
@@ -42,8 +43,9 @@ base mixin SupportsUnregisterAll on DIBase {
4243
registry
4344
.removeDependencyK(
4445
dependency.typeEntity,
45-
groupEntity:
46-
dependency.metadata.map((e) => e.groupEntity).unwrapOr(const DefaultEntity()),
46+
groupEntity: dependency.metadata
47+
.map((e) => e.groupEntity)
48+
.unwrapOr(const DefaultEntity()),
4749
)
4850
.end();
4951
final metadataOption = dependency.metadata;
@@ -65,7 +67,8 @@ base mixin SupportsUnregisterAll on DIBase {
6567
if (onAfterUnregister != null) {
6668
seq.then((_) {
6769
return Resolvable(
68-
() => consec(onAfterUnregister(Ok(dependency)), (_) => const None()),
70+
() =>
71+
consec(onAfterUnregister(Ok(dependency)), (_) => const None()),
6972
);
7073
}).end();
7174
}

0 commit comments

Comments
 (0)