UNPKG

@web-atoms/core

Version:
52 lines (51 loc) 1.68 kB
System.register(["../core/types", "./ServiceCollection"], function (_export, _context) { "use strict"; var DI, Scope, ServiceCollection, globalNS; function evalGlobal(path) { if (typeof path === "string") { let r = globalNS; for (const iterator of path.split(".")) { r = r[iterator]; if (r === undefined || r === null) { return r; } } return r; } return path; } function Register(id, scope) { return target => { if (typeof id === "object") { if (scope) { id.scope = scope; } ServiceCollection.instance.register(id.for || target, id.for ? sp => sp.create(target) : null, id.scope || Scope.Transient, id.id); if (id.mockOrInject) { if (id.mockOrInject.inject) { DI.inject(target, id.mockOrInject.inject); } else if (id.mockOrInject.mock) { DI.mockType(target, id.mockOrInject.mock); } else if (id.mockOrInject.globalVar) { ServiceCollection.instance.register(id.for || target, sp => evalGlobal(id.mockOrInject.globalVar), id.scope || Scope.Global, id.id); } } return; } ServiceCollection.instance.register(target, null, scope, id); }; } _export("Register", Register); return { setters: [function (_coreTypes) { DI = _coreTypes.DI; }, function (_ServiceCollection) { Scope = _ServiceCollection.Scope; ServiceCollection = _ServiceCollection.ServiceCollection; }], execute: function () { globalNS = typeof global === "undefined" ? window : global; } }; }); //# sourceMappingURL=Register.js.map