| Index: third_party/pkg/di/lib/module.dart
|
| diff --git a/third_party/pkg/di/lib/module.dart b/third_party/pkg/di/lib/module.dart
|
| deleted file mode 100644
|
| index a36a80c8baecbfb0dc73a20ea92a07a5eb7d80d1..0000000000000000000000000000000000000000
|
| --- a/third_party/pkg/di/lib/module.dart
|
| +++ /dev/null
|
| @@ -1,176 +0,0 @@
|
| -part of di;
|
| -
|
| -typedef dynamic FactoryFn(Injector injector);
|
| -
|
| -/**
|
| - * Creation strategy is asked to return an instance of the type after
|
| - * [Injector.get] locates the defining injector that has no instance cached.
|
| - * [directInstantation] is true when an instance is created directly from
|
| - * [Injector.instantiate].
|
| - */
|
| -typedef dynamic CreationStrategy(
|
| - Injector requesting,
|
| - Injector defining,
|
| - dynamic factory()
|
| -);
|
| -
|
| -/**
|
| - * Visibility determines if the instance in the defining module is visible to
|
| - * the requesting injector. If true is returned, then the instance from the
|
| - * defining injector is provided. If false is returned, the injector keeps
|
| - * walking up the tree to find another visible instance.
|
| - */
|
| -typedef bool Visibility(Injector requesting, Injector defining);
|
| -
|
| -typedef Object TypeFactory(factory(Type));
|
| -
|
| -/**
|
| - * A collection of type bindings. Once the module is passed into the injector,
|
| - * the injector creates a copy of the module and all subsequent changes to the
|
| - * module have no effect.
|
| - */
|
| -class Module {
|
| - final Map<Type, _Provider> _providers = <Type, _Provider>{};
|
| - final List<Module> _childModules = <Module>[];
|
| - Map<Type, TypeFactory> _typeFactories = {};
|
| -
|
| - Map<Type, TypeFactory> get typeFactories {
|
| - if (_childModules.isEmpty) {
|
| - return _typeFactories;
|
| - }
|
| - var tmp = new Map.from(_typeFactories);
|
| - _childModules.forEach((child) {
|
| - if (child.typeFactories != null) {
|
| - child.typeFactories.forEach((type, factory) {
|
| - tmp[type] = factory;
|
| - });
|
| - }
|
| - });
|
| - return tmp;
|
| - }
|
| -
|
| - set typeFactories(Map<Type, TypeFactory> factories) {
|
| - _typeFactories = factories;
|
| - }
|
| -
|
| - Map<Type, _Provider> _providersCache;
|
| -
|
| - /**
|
| - * Compiles and returs bindings map by performing depth-first traversal of the
|
| - * child (installed) modules.
|
| - */
|
| - Map<Type, _Provider> get _bindings {
|
| - if (_isDirty) {
|
| - _providersCache = <Type, _Provider>{};
|
| - _childModules.forEach((child) => _providersCache.addAll(child._bindings));
|
| - _providersCache.addAll(_providers);
|
| - }
|
| - return _providersCache;
|
| - }
|
| -
|
| - /**
|
| - * Register binding to a concrete value.
|
| - *
|
| - * The [value] is what actually will be injected.
|
| - */
|
| - void value(Type id, value,
|
| - {CreationStrategy creation, Visibility visibility}) {
|
| - _dirty();
|
| - _providers[id] = new _ValueProvider(value, creation, visibility);
|
| - }
|
| -
|
| - /**
|
| - * Register binding to a [Type].
|
| - *
|
| - * The [implementedBy] will be instantiated using [new] operator and the
|
| - * resulting instance will be injected. If no type is provided, then it's
|
| - * implied that [id] should be instantiated.
|
| - */
|
| - void type(Type id, {Type implementedBy, CreationStrategy creation,
|
| - Visibility visibility}) {
|
| - _dirty();
|
| - _providers[id] = new _TypeProvider(
|
| - implementedBy == null ? id : implementedBy, creation, visibility);
|
| - }
|
| -
|
| - /**
|
| - * Register binding to a factory function.abstract
|
| - *
|
| - * The [factoryFn] will be called and all its arguments will get injected.
|
| - * The result of that function is the value that will be injected.
|
| - */
|
| - void factory(Type id, FactoryFn factoryFn,
|
| - {CreationStrategy creation, Visibility visibility}) {
|
| - _dirty();
|
| - _providers[id] = new _FactoryProvider(factoryFn, creation, visibility);
|
| - }
|
| -
|
| - /**
|
| - * Installs another module into this module. Bindings defined on this module
|
| - * take precidence over the installed module.
|
| - */
|
| - void install(Module module) {
|
| - _childModules.add(module);
|
| - _dirty();
|
| - }
|
| -
|
| - _dirty() {
|
| - _providersCache = null;
|
| - }
|
| -
|
| - bool get _isDirty =>
|
| - _providersCache == null || _childModules.any((m) => m._isDirty);
|
| -}
|
| -
|
| -/** Deafault creation strategy is to instantiate on the defining injector. */
|
| -dynamic _defaultCreationStrategy(Injector requesting, Injector defining,
|
| - dynamic factory()) => factory();
|
| -
|
| -/** By default all values are visible to child injectors. */
|
| -bool _defaultVisibility(_, __) => true;
|
| -
|
| -
|
| -typedef Object ObjectFactory(Type type, Injector requestor);
|
| -
|
| -abstract class _Provider {
|
| - final CreationStrategy creationStrategy;
|
| - final Visibility visibility;
|
| -
|
| - _Provider(this.creationStrategy, this.visibility);
|
| -
|
| - dynamic get(Injector injector, Injector requestor, ObjectFactory getInstanceByType, error);
|
| -}
|
| -
|
| -class _ValueProvider extends _Provider {
|
| - dynamic value;
|
| -
|
| - _ValueProvider(this.value, [CreationStrategy creationStrategy,
|
| - Visibility visibility])
|
| - : super(creationStrategy, visibility);
|
| -
|
| - dynamic get(Injector injector, Injector requestor, ObjectFactory getInstanceByType, error) =>
|
| - value;
|
| -}
|
| -
|
| -class _TypeProvider extends _Provider {
|
| - final Type type;
|
| -
|
| - _TypeProvider(this.type, [CreationStrategy creationStrategy,
|
| - Visibility visibility])
|
| - : super(creationStrategy, visibility);
|
| -
|
| - dynamic get(Injector injector, Injector requestor, ObjectFactory getInstanceByType, error) =>
|
| - injector.newInstanceOf(type, getInstanceByType, requestor, error);
|
| -
|
| -}
|
| -
|
| -class _FactoryProvider extends _Provider {
|
| - final Function factoryFn;
|
| -
|
| - _FactoryProvider(this.factoryFn, [CreationStrategy creationStrategy,
|
| - Visibility visibility])
|
| - : super(creationStrategy, visibility);
|
| -
|
| - dynamic get(Injector injector, Injector requestor, getInstanceByType, error) =>
|
| - factoryFn(injector);
|
| -}
|
|
|