UNPKG

tsioc

Version:

tsioc is AOP, Ioc container, via typescript decorator

43 lines (41 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("reflect-metadata"); var DecoratorFactory_1 = require("./DecoratorFactory"); var DecoratorType_1 = require("./DecoratorType"); var index_1 = require("../../utils/index"); /** * create parameter decorator. * * @export * @template T metadata type. * @param {string} name decorator name. * @param {MetadataAdapter} [adapter] metadata adapter * @param {MetadataExtends<T>} [metadataExtends] add extents for metadata. * @returns */ function createParamDecorator(name, adapter, metadataExtends) { var paramAdapter = (function (args) { if (adapter) { adapter(args); } args.next({ isMetadata: function (arg) { return index_1.isParamMetadata(arg); }, match: function (arg) { return index_1.isToken(arg); }, setMetadata: function (metadata, arg) { metadata.provider = arg; } }); // args.next<T>({ // match: (arg) => isString(arg), // setMetadata: (metadata, arg) => { // metadata.alias = arg; // } // }); }); var decorator = DecoratorFactory_1.createDecorator(name, paramAdapter, metadataExtends); decorator.decoratorType = DecoratorType_1.DecoratorType.Parameter; return decorator; } exports.createParamDecorator = createParamDecorator; //# sourceMappingURL=../../sourcemaps/core/factories/ParamDecoratorFactory.js.map