async_injector 0.1.1 async_injector: ^0.1.1 copied to clipboard
dependency injector with async initialization support.
Dependency injector for Dart
A simple usage example
import 'package:async_injector/async_injector.dart';
class DI {
static Provider instance;
static initComponent() async {
var builder = ProviderBuilder();
//preference
builder
..moduleImpl((_) => SharedPreferences.getInstance())
..moduleImpl<PreferenceGateway>((provider) => PreferenceImpl(provider.get()));
//api
builder
..moduleImpl((provider) => AuthInterceptor(provider.get()))
..moduleImpl<Dio>(
(provider) => DioInstance.create(provider.get()));
DI.instance = await builder.build();
}
static T get<T>() => instance.get<T>();
}
After build use get method by request type
SharedPreferences preference = DI.get()
You can return Future to the module and the result from it is added to the area
..moduleImpl<SharedPreferences>((provider) => SharedPreferences.getInstance())