UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 10.5 kB
{"version":3,"sources":["exceptions.js"],"names":[],"mappings":"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","file":"angular2/src/di/exceptions.js","sourcesContent":["import {ListWrapper, List} from 'angular2/src/facade/collection';\nimport {stringify} from 'angular2/src/facade/lang';\n\nfunction findFirstClosedCycle(keys:List) {\n var res = [];\n for(var i = 0; i < keys.length; ++i) {\n if (ListWrapper.contains(res, keys[i])) {\n ListWrapper.push(res, keys[i]);\n return res;\n } else {\n ListWrapper.push(res, keys[i]);\n }\n }\n return res;\n}\n\nfunction constructResolvingPath(keys:List) {\n if (keys.length > 1) {\n var reversed = findFirstClosedCycle(ListWrapper.reversed(keys));\n var tokenStrs = ListWrapper.map(reversed, (k) => stringify(k.token));\n return \" (\" + tokenStrs.join(' -> ') + \")\";\n } else {\n return \"\";\n }\n}\n\n\n/**\n * Base class for all errors arising from misconfigured bindings.\n *\n * @exportedAs angular2/di_errors\n */\nexport class AbstractBindingError extends Error {\n keys:List;\n constructResolvingMessage:Function;\n message;\n // TODO(tbosch): Can't do key:Key as this results in a circular dependency!\n constructor(key, constructResolvingMessage:Function) {\n super();\n this.keys = [key];\n this.constructResolvingMessage = constructResolvingMessage;\n this.message = this.constructResolvingMessage(this.keys);\n }\n\n // TODO(tbosch): Can't do key:Key as this results in a circular dependency!\n addKey(key) {\n ListWrapper.push(this.keys, key);\n this.message = this.constructResolvingMessage(this.keys);\n }\n\n toString() {\n return this.message;\n }\n}\n\n/**\n * Thrown when trying to retrieve a dependency by `Key` from {@link Injector}, but the {@link Injector} does not have a\n * {@link Binding} for {@link Key}.\n *\n * @exportedAs angular2/di_errors\n */\nexport class NoBindingError extends AbstractBindingError {\n // TODO(tbosch): Can't do key:Key as this results in a circular dependency!\n constructor(key) {\n super(key, function (keys:List) {\n var first = stringify(ListWrapper.first(keys).token);\n return `No provider for ${first}!${constructResolvingPath(keys)}`;\n });\n }\n}\n\n/**\n * Thrown when trying to retrieve an async {@link Binding} using the sync API.\n *\n * ## Example\n *\n * ```javascript\n * var injector = Injector.resolveAndCreate([\n * bind(Number).toAsyncFactory(() => {\n * return new Promise((resolve) => resolve(1 + 2));\n * }),\n * bind(String).toFactory((v) => { return \"Value: \" + v; }, [String])\n * ]);\n *\n * injector.asyncGet(String).then((v) => expect(v).toBe('Value: 3'));\n * expect(() => {\n * injector.get(String);\n * }).toThrowError(AsycBindingError);\n * ```\n *\n * The above example throws because `String` depends on `Number` which is async. If any binding in the dependency\n * graph is async then the graph can only be retrieved using the `asyncGet` API.\n *\n * @exportedAs angular2/di_errors\n */\nexport class AsyncBindingError extends AbstractBindingError {\n // TODO(tbosch): Can't do key:Key as this results in a circular dependency!\n constructor(key) {\n super(key, function (keys:List) {\n var first = stringify(ListWrapper.first(keys).token);\n return `Cannot instantiate ${first} synchronously. ` +\n `It is provided as a promise!${constructResolvingPath(keys)}`;\n });\n }\n}\n\n/**\n * Thrown when dependencies form a cycle.\n *\n * ## Example:\n *\n * ```javascript\n * class A {\n * constructor(b:B) {}\n * }\n * class B {\n * constructor(a:A) {}\n * }\n * ```\n *\n * Retrieving `A` or `B` throws a `CyclicDependencyError` as the graph above cannot be constructed.\n *\n * @exportedAs angular2/di_errors\n */\nexport class CyclicDependencyError extends AbstractBindingError {\n // TODO(tbosch): Can't do key:Key as this results in a circular dependency!\n constructor(key) {\n super(key, function (keys:List) {\n return `Cannot instantiate cyclic dependency!${constructResolvingPath(keys)}`;\n });\n }\n}\n\n/**\n * Thrown when a constructing type returns with an Error.\n *\n * The `InstantiationError` class contains the original error plus the dependency graph which caused this object to be\n * instantiated.\n *\n * @exportedAs angular2/di_errors\n */\nexport class InstantiationError extends AbstractBindingError {\n // TODO(tbosch): Can't do key:Key as this results in a circular dependency!\n constructor(originalException, key) {\n super(key, function (keys:List) {\n var first = stringify(ListWrapper.first(keys).token);\n return `Error during instantiation of ${first}!${constructResolvingPath(keys)}.` +\n ` ORIGINAL ERROR: ${originalException}`;\n });\n }\n}\n\n/**\n * Thrown when an object other then {@link Binding} (or `Type`) is passed to {@link Injector} creation.\n *\n * @exportedAs angular2/di_errors\n */\nexport class InvalidBindingError extends Error {\n message:string;\n constructor(binding) {\n super();\n this.message = `Invalid binding ${binding}`;\n }\n\n toString() {\n return this.message;\n }\n}\n\n/**\n * Thrown when the class has no annotation information.\n *\n * Lack of annotation information prevents the {@link Injector} from determining which dependencies need to be injected into\n * the constructor.\n *\n * @exportedAs angular2/di_errors\n */\nexport class NoAnnotationError extends Error {\n message:string;\n constructor(typeOrFunc) {\n super();\n this.message = `Cannot resolve all parameters for ${stringify(typeOrFunc)}.` +\n ` Make sure they all have valid type or annotations.`;\n }\n\n toString() {\n return this.message;\n }\n}\n"]}