UNPKG

angular2

Version:

Angular 2 - a web framework for modern web apps

1 lines 3.18 kB
{"version":3,"sources":["key.js"],"names":[],"mappings":"AAAA;AAAA,KAAK,iBAAiB,AAAC,CAAC,MAAK,QAAQ;KAArC,EAAC,GAAE,YAAqB;AAAE,gBAAwB;IAAE,AAA9B,CAAC;aAAvB,EAAC,GAAE,YAAqB;AAAE,wBAAwB;IAAE,AAA9B,CAAC;AAAvB,WAAS,CAAT,EAAC,KAAI,CAAO,KAAG,AAAS,CAAC;CAAgC,CAAC;;EAAlD,WAAS,EAAjB,EAAC,8CAAoB,CAAA,OAAM,AAAC,kCAAkB,CACtC,CAAA,+CAAqB,wDAA2B,CAAA,+CAAqB,GAAK,EAAC,OAAM,8CAAmB,CAAC,AAD/D,CACgE;AAD9G,AAAI,EAAA,MAiBG,SAAM,IAAE,CAID,KAAI,CAAG,CAAA,EAAC,CAAa;AAC/B,KAAG,MAAM,EAAI,MAAI,CAAC;AAClB,KAAG,GAAG,EAAI,GAAC,CAAC;AACZ,KAAG,SAAS,EAAI,KAAG,CAAC;AACtB,AAzBsC,CAAA;AAAxC,AAAI,EAAA,WAAoC,CAAA;AAAxC,AAAC,eAAc,YAAY,CAAC,AAAC;AA8BpB,IAAE,CAAT,UAAW,KAAI,CAAO;AACpB,SAAO,CAAA,kBAAiB,IAAI,AAAC,CAAC,KAAI,CAAC,CAAC;EACtC;AAKA,IAAW,aAAW,EAAc;AAClC,SAAO,CAAA,kBAAiB,aAAa,CAAC;EACxC;AAAA,CAvCmF;AAArF,AAAI,EAAA,cA6CG,SAAM,YAAU,CAET,AAAD,CAAG;AACZ,KAAG,SAAS,EAAI,CAAA,UAAS,OAAO,AAAC,EAAC,CAAC;AACrC,AAjDsC,CAAA;AAAxC,AAAC,eAAc,YAAY,CAAC,AAAC;AAmD3B,IAAE,CAAF,UAAI,KAAI,CAAO;AACb,OAAI,KAAI,WAAa,IAAE;AAAG,WAAO,MAAI,CAAC;AAAA,AAEtC,OAAI,UAAS,SAAS,AAAC,CAAC,IAAG,SAAS,CAAG,MAAI,CAAC,CAAG;AAC7C,WAAO,CAAA,UAAS,IAAI,AAAC,CAAC,IAAG,SAAS,CAAG,MAAI,CAAC,CAAC;IAC7C;AAAA,AAEI,MAAA,CAAA,MAAK,EAAI,IAAI,IAAE,AAAC,CAAC,KAAI,CAAG,CAAA,GAAE,aAAa,CAAC,CAAC;AAC7C,aAAS,IAAI,AAAC,CAAC,IAAG,SAAS,CAAG,MAAI,CAAG,OAAK,CAAC,CAAC;AAC5C,SAAO,OAAK,CAAC;EACf;AAEA,IAAI,aAAW,EAAc;AAC3B,SAAO,CAAA,UAAS,KAAK,AAAC,CAAC,IAAG,SAAS,CAAC,CAAC;EACvC;AAAA,KAjEmF;AAoErF,AAAI,EAAA,CAAA,kBAAiB,EAAI,IAAI,YAAU,AAAC,EAAC,CAAC;AAC1C","file":"angular2/src/di/key.js","sourcesContent":["import {MapWrapper} from 'angular2/src/facade/collection';\n//import {int} from 'angular2/src/facade/lang';\n\n// TODO: uncoment `int` once https://github.com/angular/angular/issues/1414 is fixed\n\n/**\n * A unique object used for retrieving items from the {@link Injector}.\n *\n * Keys have:\n * - a system-wide unique `id`.\n * - a `token`, usually the `Type` of the instance.\n *\n * Keys are used internally by the {@link Injector} because their system-wide unique `id`s allow the\n * injector to index in arrays rather than looking up items in maps.\n *\n * @exportedAs angular2/di\n */\nexport class Key {\n token;\n id/* :int */;\n metadata:any;\n constructor(token, id/* :int */) {\n this.token = token;\n this.id = id;\n this.metadata = null;\n }\n\n /**\n * Retrieves a `Key` for a token.\n */\n static get(token):Key {\n return _globalKeyRegistry.get(token);\n }\n\n /**\n * @returns the number of keys registered in the system.\n */\n static get numberOfKeys()/* :int */ {\n return _globalKeyRegistry.numberOfKeys;\n }\n}\n\n/**\n * @private\n */\nexport class KeyRegistry {\n _allKeys:Map;\n constructor() {\n this._allKeys = MapWrapper.create();\n }\n\n get(token):Key {\n if (token instanceof Key) return token;\n\n if (MapWrapper.contains(this._allKeys, token)) {\n return MapWrapper.get(this._allKeys, token);\n }\n\n var newKey = new Key(token, Key.numberOfKeys);\n MapWrapper.set(this._allKeys, token, newKey);\n return newKey;\n }\n\n get numberOfKeys()/* :int */ {\n return MapWrapper.size(this._allKeys);\n }\n}\n\nvar _globalKeyRegistry = new KeyRegistry();\n"]}