UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 28.1 kB
{"version":3,"sources":["injector.js"],"names":[],"mappings":"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","file":"angular2/src/di/injector.es6","sourcesContent":["import {Map, List, MapWrapper, ListWrapper} from 'angular2/src/facade/collection';\nimport {ResolvedBinding, Binding, BindingBuilder, bind} from './binding';\nimport {AbstractBindingError, NoBindingError, AsyncBindingError, CyclicDependencyError,\n InstantiationError, InvalidBindingError} from './exceptions';\nimport {FunctionWrapper, Type, isPresent, isBlank} from 'angular2/src/facade/lang';\nimport {Promise, PromiseWrapper} from 'angular2/src/facade/async';\nimport {Key} from './key';\n\nvar _constructing = new Object();\nvar _notFound = new Object();\n\nclass _Waiting {\n promise:Promise;\n constructor(promise:Promise) {\n this.promise = promise;\n }\n}\nfunction _isWaiting(obj):boolean {\n return obj instanceof _Waiting;\n}\n\n\n/**\n * A dependency injection container used for resolving dependencies.\n *\n * An `Injector` is a replacement for a `new` operator, which can automatically resolve the constructor dependencies.\n * In typical use, application code asks for the dependencies in the constructor and they are resolved by the\n * `Injector`.\n *\n * ## Example:\n *\n * Suppose that we want to inject an `Engine` into class `Car`, we would define it like this:\n *\n * ```javascript\n * class Engine {\n * }\n *\n * class Car {\n * \tconstructor(@Inject(Engine) engine) {\n * \t}\n * }\n *\n * ```\n *\n * Next we need to write the code that creates and instantiates the `Injector`. We then ask for the `root` object,\n * `Car`, so that the `Injector` can recursively build all of that object's dependencies.\n *\n * ```javascript\n * main() {\n * var injector = Injector.resolveAndCreate([Car, Engine]);\n *\n * // Get a reference to the `root` object, which will recursively instantiate the tree.\n * var car = injector.get(Car);\n * }\n * ```\n * Notice that we don't use the `new` operator because we explicitly want to have the `Injector` resolve all of the\n * object's dependencies automatically.\n *\n * @exportedAs angular2/di\n */\nexport class Injector {\n _bindings:List;\n _instances:List;\n _parent:Injector;\n _defaultBindings:boolean;\n _asyncStrategy: _AsyncInjectorStrategy;\n _syncStrategy:_SyncInjectorStrategy;\n\n /**\n * Turns a list of binding definitions into an internal resolved list of resolved bindings.\n *\n * A resolution is a process of flattening multiple nested lists and converting individual bindings into a\n * list of {@link ResolvedBinding}s. The resolution can be cached by `resolve` for the {@link Injector} for\n * performance-sensitive code.\n *\n * @param `bindings` can be a list of `Type`, {@link Binding}, {@link ResolvedBinding}, or a recursive\n * list of more bindings.\n *\n * The returned list is sparse, indexed by `id` for the {@link Key}. It is generally not useful to application code\n * other than for passing it to {@link Injector} functions that require resolved binding lists, such as\n * `fromResolvedBindings` and `createChildFromResolved`.\n */\n static resolve(bindings:List/*<ResolvedBinding|Binding|Type|List>*/):List<ResolvedBinding> {\n var resolvedBindings = _resolveBindings(bindings);\n var flatten = _flattenBindings(resolvedBindings, MapWrapper.create());\n return _createListOfBindings(flatten);\n }\n\n /**\n * Resolves bindings and creates an injector based on those bindings. This function is slower than the\n * corresponding `fromResolvedBindings` because it needs to resolve bindings first. See `resolve` for the\n * {@link Injector}.\n *\n * Prefer `fromResolvedBindings` in performance-critical code that creates lots of injectors.\n *\n * @param `bindings` can be a list of `Type`, {@link Binding}, {@link ResolvedBinding}, or a recursive list of more\n * bindings.\n * @param `defaultBindings` Setting to true will auto-create bindings.\n */\n static resolveAndCreate(bindings:List/*<ResolvedBinding|Binding|Type|List>*/, {defaultBindings=false}={}) {\n return new Injector(Injector.resolve(bindings), null, defaultBindings);\n }\n\n /**\n * Creates an injector from previously resolved bindings. This bypasses resolution and flattening. This API is the\n * recommended way to construct injectors in performance-sensitive parts.\n *\n * @param `bindings` A sparse list of {@link ResolvedBinding}s. See `resolve` for the {@link Injector}.\n * @param `defaultBindings` Setting to true will auto-create bindings.\n */\n static fromResolvedBindings(bindings:List<ResolvedBinding>, {defaultBindings=false}={}) {\n return new Injector(bindings, null, defaultBindings);\n }\n\n /**\n * @param `bindings` A sparse list of {@link ResolvedBinding}s. See `resolve` for the {@link Injector}.\n * @param `parent` Parent Injector or `null` if root Injector.\n * @param `defaultBindings` Setting to true will auto-create bindings. (Only use with root injector.)\n */\n constructor(bindings:List<ResolvedBinding>, parent:Injector, defaultBindings:boolean) {\n this._bindings = bindings;\n this._instances = this._createInstances();\n this._parent = parent;\n this._defaultBindings = defaultBindings;\n this._asyncStrategy = new _AsyncInjectorStrategy(this);\n this._syncStrategy = new _SyncInjectorStrategy(this);\n }\n\n /**\n * Retrieves an instance from the injector.\n *\n * @param `token`: usually the `Type` of an object. (Same as the token used while setting up a binding).\n * @returns an instance represented by the token. Throws if not found.\n */\n get(token) {\n\n return this._getByKey(Key.get(token), false, false, false);\n }\n\n\n /**\n * Retrieves an instance from the injector.\n *\n * @param `token`: usually a `Type`. (Same as the token used while setting up a binding).\n * @returns an instance represented by the token. Returns `null` if not found.\n */\n getOptional(token) {\n return this._getByKey(Key.get(token), false, false, true);\n }\n\n /**\n * Retrieves an instance from the injector asynchronously. Used with asynchronous bindings.\n *\n * @param `token`: usually a `Type`. (Same as token used while setting up a binding).\n * @returns a `Promise` which resolves to the instance represented by the token.\n */\n asyncGet(token):Promise {\n return this._getByKey(Key.get(token), true, false, false);\n }\n\n /**\n * Creates a child injector and loads a new set of bindings into it.\n *\n * A resolution is a process of flattening multiple nested lists and converting individual bindings into a\n * list of {@link ResolvedBinding}s. The resolution can be cached by `resolve` for the {@link Injector} for\n * performance-sensitive code.\n *\n * @param `bindings` can be a list of `Type`, {@link Binding}, {@link ResolvedBinding}, or a recursive\n * list of more bindings.\n *\n */\n resolveAndCreateChild(bindings:List/*<ResolvedBinding|Binding|Type|List>*/):Injector {\n return new Injector(Injector.resolve(bindings), this, false);\n }\n\n /**\n * Creates a child injector and loads a new set of {@link ResolvedBinding}s into it.\n *\n * @param `bindings`: A sparse list of {@link ResolvedBinding}s. See `resolve` for the {@link Injector}.\n * @returns a new child {@link Injector}.\n */\n createChildFromResolved(bindings:List<ResolvedBinding>):Injector {\n return new Injector(bindings, this, false);\n }\n\n _createInstances():List {\n return ListWrapper.createFixedSize(Key.numberOfKeys + 1);\n }\n\n _getByKey(key:Key, returnPromise:boolean, returnLazy:boolean, optional:boolean) {\n if (returnLazy) {\n return () => this._getByKey(key, returnPromise, false, optional);\n }\n\n var strategy = returnPromise ? this._asyncStrategy : this._syncStrategy;\n\n var instance = strategy.readFromCache(key);\n if (instance !== _notFound) return instance;\n\n instance = strategy.instantiate(key);\n if (instance !== _notFound) return instance;\n\n if (isPresent(this._parent)) {\n return this._parent._getByKey(key, returnPromise, returnLazy, optional);\n }\n\n if (optional) {\n return null;\n } else {\n throw new NoBindingError(key);\n }\n }\n\n _resolveDependencies(key:Key, binding:ResolvedBinding, forceAsync:boolean):List {\n try {\n var getDependency = d => this._getByKey(d.key, forceAsync || d.asPromise, d.lazy, d.optional);\n return ListWrapper.map(binding.dependencies, getDependency);\n } catch (e) {\n this._clear(key);\n if (e instanceof AbstractBindingError) e.addKey(key);\n throw e;\n }\n }\n\n _getInstance(key:Key) {\n if (this._instances.length <= key.id) return null;\n return ListWrapper.get(this._instances, key.id);\n }\n\n _setInstance(key:Key, obj) {\n ListWrapper.set(this._instances, key.id, obj);\n }\n\n _getBinding(key:Key) {\n var binding = this._bindings.length <= key.id ?\n null :\n ListWrapper.get(this._bindings, key.id);\n\n if (isBlank(binding) && this._defaultBindings) {\n return bind(key.token).toClass(key.token).resolve();\n } else {\n return binding;\n }\n }\n\n _markAsConstructing(key:Key) {\n this._setInstance(key, _constructing);\n }\n\n _clear(key:Key) {\n this._setInstance(key, null);\n }\n}\n\n\nclass _SyncInjectorStrategy {\n injector:Injector;\n constructor(injector:Injector) {\n this.injector = injector;\n }\n\n readFromCache(key:Key) {\n if (key.token === Injector) {\n return this.injector;\n }\n\n var instance = this.injector._getInstance(key);\n\n if (instance === _constructing) {\n throw new CyclicDependencyError(key);\n } else if (isPresent(instance) && !_isWaiting(instance)) {\n return instance;\n } else {\n return _notFound;\n }\n }\n\n instantiate(key:Key) {\n var binding = this.injector._getBinding(key);\n if (isBlank(binding)) return _notFound;\n\n if (binding.providedAsPromise) throw new AsyncBindingError(key);\n\n //add a marker so we can detect cyclic dependencies\n this.injector._markAsConstructing(key);\n\n var deps = this.injector._resolveDependencies(key, binding, false);\n return this._createInstance(key, binding, deps);\n }\n\n _createInstance(key:Key, binding:ResolvedBinding, deps:List) {\n try {\n var instance = FunctionWrapper.apply(binding.factory, deps);\n this.injector._setInstance(key, instance);\n return instance;\n } catch (e) {\n this.injector._clear(key);\n throw new InstantiationError(e, key);\n }\n }\n}\n\n\nclass _AsyncInjectorStrategy {\n injector:Injector;\n constructor(injector:Injector) {\n this.injector = injector;\n }\n\n readFromCache(key:Key) {\n if (key.token === Injector) {\n return PromiseWrapper.resolve(this.injector);\n }\n\n var instance = this.injector._getInstance(key);\n\n if (instance === _constructing) {\n throw new CyclicDependencyError(key);\n } else if (_isWaiting(instance)) {\n return instance.promise;\n } else if (isPresent(instance)) {\n return PromiseWrapper.resolve(instance);\n } else {\n return _notFound;\n }\n }\n\n instantiate(key:Key) {\n var binding = this.injector._getBinding(key);\n if (isBlank(binding)) return _notFound;\n\n //add a marker so we can detect cyclic dependencies\n this.injector._markAsConstructing(key);\n\n var deps = this.injector._resolveDependencies(key, binding, true);\n var depsPromise = PromiseWrapper.all(deps);\n\n var promise = PromiseWrapper\n .then(depsPromise, null, (e) => this._errorHandler(key, e))\n .then(deps => this._findOrCreate(key, binding, deps))\n .then(instance => this._cacheInstance(key, instance));\n\n this.injector._setInstance(key, new _Waiting(promise));\n return promise;\n }\n\n _errorHandler(key:Key, e):Promise {\n if (e instanceof AbstractBindingError) e.addKey(key);\n return PromiseWrapper.reject(e);\n }\n\n _findOrCreate(key:Key, binding:ResolvedBinding, deps:List) {\n try {\n var instance = this.injector._getInstance(key);\n if (!_isWaiting(instance)) return instance;\n return FunctionWrapper.apply(binding.factory, deps);\n } catch (e) {\n this.injector._clear(key);\n throw new InstantiationError(e, key);\n }\n }\n\n _cacheInstance(key, instance) {\n this.injector._setInstance(key, instance);\n return instance\n }\n}\n\nfunction _resolveBindings(bindings:List): List {\n var resolvedList = ListWrapper.createFixedSize(bindings.length);\n for (var i = 0; i < bindings.length; i++) {\n var unresolved = bindings[i];\n var resolved;\n if (unresolved instanceof ResolvedBinding) {\n resolved = unresolved; // ha-ha! I'm easily amused\n } else if (unresolved instanceof Type) {\n resolved = bind(unresolved).toClass(unresolved).resolve();\n } else if (unresolved instanceof Binding) {\n resolved = unresolved.resolve();\n } else if (unresolved instanceof List) {\n resolved = _resolveBindings(unresolved);\n } else if (unresolved instanceof BindingBuilder) {\n throw new InvalidBindingError(unresolved.token);\n } else {\n throw new InvalidBindingError(unresolved);\n }\n resolvedList[i] = resolved;\n }\n return resolvedList;\n}\n\nfunction _createListOfBindings(flattenedBindings):List {\n var bindings = ListWrapper.createFixedSize(Key.numberOfKeys + 1);\n MapWrapper.forEach(flattenedBindings, (v, keyId) => bindings[keyId] = v);\n return bindings;\n}\n\nfunction _flattenBindings(bindings:List, res:Map) {\n ListWrapper.forEach(bindings, function (b) {\n if (b instanceof ResolvedBinding) {\n MapWrapper.set(res, b.key.id, b);\n } else if (b instanceof List) {\n _flattenBindings(b, res);\n }\n });\n return res;\n}\n"]}