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

98 lines (97 loc) 3.69 kB
"use strict"; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); var angular = __importStar(require("angular")); var writers_1 = require("../writers"); var _parsers = {}; var DecoratedModule = (function () { function DecoratedModule(name, modules) { if (modules === void 0) { modules = false; } this.name = name; if (modules) { this.moduleList(modules); this._module = angular.module(name, this._dependencies); } else { this._module = angular.module(name); } } DecoratedModule.prototype.add = function () { var _this = this; var providers = []; for (var _i = 0; _i < arguments.length; _i++) { providers[_i] = arguments[_i]; } var providersInferred = providers.filter(function (p) { return !p.isProvider; }); var providersProper = providers.filter(function (p) { return p.isProvider; }); var handleProvider = function (provider) { if (!writers_1.providerStore.has('type', provider)) { throw new Error("Cannot read provider metadata. Are you adding a class that hasn't been decorated yet?"); } var type = writers_1.providerStore.get('type', provider); var name = writers_1.providerStore.get('name', provider); var inject = writers_1.bundleStore.get('$inject', provider) || []; if (_parsers[type]) { _parsers[type](provider, name, inject, _this._module); } else { throw new Error("No parser registered for type '" + type + "'"); } }; providersInferred.forEach(handleProvider); providersProper.forEach(handleProvider); return this; }; DecoratedModule.prototype.publish = function () { return this._module; }; DecoratedModule.prototype.moduleList = function (modules) { this._dependencies = []; if (modules && modules.length !== 0) { for (var i = 0; i < modules.length; i++) { if (typeof modules[i] === 'string') { this._dependencies.push(modules[i]); } else if (modules[i] && modules[i].name) { this._dependencies.push(modules[i].name); } else { throw new Error("Cannot read module: Unknown module in " + this.name); } } } }; DecoratedModule.prototype.config = function (configFunc) { this._module.config(configFunc); return this; }; DecoratedModule.prototype.run = function (runFunc) { this._module.run(runFunc); return this; }; DecoratedModule.prototype.value = function (name, value) { this._module.value(name, value); return this; }; DecoratedModule.prototype.constant = function (name, value) { this._module.constant(name, value); return this; }; return DecoratedModule; }()); exports.DecoratedModule = DecoratedModule; exports.Module = function (name, modules) { return new DecoratedModule(name, modules); }; exports.Module.addProvider = function (providerType, parser) { _parsers[providerType] = parser; }; exports.Module.getParser = function (providerType) { return _parsers[providerType]; };