minimal_di 0.0.4 minimal_di: ^0.0.4 copied to clipboard
Minimalistic Flutter DI Container for Dependency Injection for a simple situation
di #
Flutter Dependency Injection package for minimalist.
just 6 simple features #
abstract class IDependencyInjection
{
bool isRegistered<T extends Object>({String? named});
void register<T extends Object>(T instance, {String? named});
void registerLazy<T extends Object>(Future<T> Function() func, {String? named});
void change<T extends Object>(T instance, {String? named});
T get<T extends Object>({String? named});
Future<T> getAsync<T extends Object>({String? named});
}
Usage #
Future<int> initNumber(String number) async
{
var parsed = int.tryParse(number);
parsed ??= 1;
await Future.delayed(Duration(seconds: parsed));
return parsed;
}
DI.instance.registerLazy<int>(() => initNumber("1"), named:"one");
var one = await DI.instance.getAsync<int>(named: "one");
assert(one == 1);
if you do not pass named argument, default values is runtimeType.toString()