tsioc
Version:
tsioc is AOP, Ioc container, via typescript decorator
36 lines (34 loc) • 1.23 kB
JavaScript
;
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 method 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 createMethodDecorator(name, adapter, metadataExtends) {
var methodAdapter = function (args) {
if (adapter) {
adapter(args);
}
args.next({
match: function (arg) { return index_1.isArray(arg); },
setMetadata: function (metadata, arg) {
metadata.providers = arg;
}
});
};
var decorator = DecoratorFactory_1.createDecorator(name, methodAdapter, metadataExtends);
decorator.decoratorType = DecoratorType_1.DecoratorType.Method;
return decorator;
}
exports.createMethodDecorator = createMethodDecorator;
//# sourceMappingURL=../../sourcemaps/core/factories/MethodDecoratorFactory.js.map