- Various code optimizations.
- Api now allows for method chaining so make mapping more concise.
- Silent removing of non existing mappings (without throwing exceptions).
- The Injector class now has a factory constructor. An Injector instance can be instantiated
in a more concise way than
Injector.getInjector()
which is now marked as deprecated.
// example with introduced changes
final injector = Injector();
injector.map<SomeType>((injector) => SomeType("0"))
..map<SomeType>((injector) => SomeType("1"), key: "One")
..map<SomeType>((injector) => SomeType("2"), key: "Two");
- Added the ability to remove a mapping and check if a mapping is present in the injector
// the new api
final injector = Injector.getInstance();
injector.map<SomeType>((i) => new SomeType())
final instance = injector.get<SomeType>();
injector.removeMapping<SomeType>();
- Fixed various analyzer warnings
- Fixed some lint warnings
- Removed dependency on flutter
- Updated example to explain how to use dependency injection rather than service location
- Added ability to pass in additional arguments in the factory function with a new method call [mapWithParams].
final injector = Injector.getInstance();
injector.mapWithParams<SomeType>((i, p) => new SomeType(p["id"]))
final instance = injector.get<SomeType>(additionalParameters: { "id": "some-id" });
print(instance.id) // prints 'some-id'
- Added ability to get all objects of the same mapped type
final injector = Injector.getInstance();
injector.map<SomeType>((injector) => new SomeType("0"));
injector.map<SomeType>((injector) => new SomeType("1"), key: "One");
injector.map<SomeType>((injector) => new SomeType("2"), key: "Two");
final instances = injector.getAll<SomeType>();
print(instances.length); // prints '3'
- Improved injector interface using generic types instead of a passed in a type to key an object factory
The new api to map and get a type instance
// the new api
final injector = Injector.getInstance();
injector.map<SomeType>((i) => new SomeType())
final instance = injector.get<SomeType>();
The old api to map and get a type instance
// the old api
final injector = Injector.getInstance();
injector.map(SomeType, (i) => new SomeType())
final instance = injector.get<SomeType>(SomeType);
- Fixed up linting and file formats
- Initial release