UNPKG

jw-ng-forward

Version:

Temporary package. The default solution for those that want to write Angular 2.x style code in Angular 1.x

47 lines (46 loc) 1.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var writers_1 = require("../writers"); var randomInt = function () { return Math.floor(Math.random() * 100); }; function decoratorFactory(type, strategyType) { if (strategyType === void 0) { strategyType = 'provider'; } var names = new Set(); function createUniqueName(name) { if (names.has(name)) { return createUniqueName("" + name + randomInt()); } else { return name; } } var NAME_TAKEN_ERROR = function (name) { return new Error("A provider with type " + type + " and name " + name + " has already been registered"); }; return (function () { var d = function (maybeT) { var writeWithUniqueName = function (t) { var name = createUniqueName(t.name); writers_1.providerStore.set('type', type, t); writers_1.providerStore.set('name', name, t); names.add(name); }; if (typeof maybeT === 'string') { if (names.has(maybeT)) { throw NAME_TAKEN_ERROR(maybeT); } return function (t) { writers_1.providerStore.set('type', type, t); writers_1.providerStore.set('name', maybeT, t); names.add(maybeT); }; } else if (maybeT === undefined) { return function (t) { return writeWithUniqueName(t); }; } writeWithUniqueName(maybeT); }; d.clearNameCache = function () { return names.clear(); }; return d; })(); } exports.decoratorFactory = decoratorFactory;