UNPKG

tsioc

Version:

tsioc is AOP, Ioc container, via typescript decorator

46 lines (44 loc) 2.17 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var ActionComposite_1 = require("./ActionComposite"); var CoreActions_1 = require("./CoreActions"); var index_1 = require("../factories/index"); var BindProviderAction = /** @class */ (function (_super) { __extends(BindProviderAction, _super); function BindProviderAction() { return _super.call(this, CoreActions_1.CoreActions.bindProvider) || this; } BindProviderAction.prototype.working = function (container, data) { var target = data.target; var type = data.targetType; var propertyKey = data.propertyKey; var lifeScope = container.getLifeScope(); var matchs = lifeScope.getClassDecorators(function (surm) { return surm.actions.includes(CoreActions_1.CoreActions.bindProvider) && index_1.hasOwnClassMetadata(surm.name, type); }); var provides = []; matchs.forEach(function (surm) { var metadata = index_1.getOwnTypeMetadata(surm.name, type); if (Array.isArray(metadata) && metadata.length > 0) { var jcfg = metadata.find(function (c) { return c && !!c.provide; }); if (jcfg) { var provideKey = container.getTokenKey(jcfg.provide, jcfg.alias); provides.push(provideKey); container.bindProvider(provideKey, jcfg.type); } } }); data.execResult = provides; }; return BindProviderAction; }(ActionComposite_1.ActionComposite)); exports.BindProviderAction = BindProviderAction; //# sourceMappingURL=../../sourcemaps/core/actions/BindProviderAction.js.map