UNPKG

tsioc

Version:

tsioc is AOP, Ioc container, via typescript decorator

42 lines (40 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var DecoratorFactory_1 = require("./DecoratorFactory"); var DecoratorType_1 = require("./DecoratorType"); var index_1 = require("../../utils/index"); /** * create property 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 createPropDecorator(name, adapter, metadataExtends) { var propPropAdapter = (function (args) { if (adapter) { adapter(args); } args.next({ isMetadata: function (arg) { return index_1.isPropertyMetadata(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, propPropAdapter, metadataExtends); decorator.decoratorType = DecoratorType_1.DecoratorType.Property; return decorator; } exports.createPropDecorator = createPropDecorator; //# sourceMappingURL=../../sourcemaps/core/factories/PropertyDecoratorFactory.js.map