tsioc
Version:
tsioc is AOP, Ioc container, via typescript decorator
43 lines (41 loc) • 1.58 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 parameter or property decorator
*
* @export
* @template T
* @param {string} name
* @param {MetadataAdapter} [adapter] metadata adapter
* @param {MetadataExtends<T>} [metadataExtends] add extents for metadata.
* @returns {IParamPropDecorator<T>}
*/
function createParamPropDecorator(name, adapter, metadataExtends) {
var paramPropAdapter = (function (args) {
if (adapter) {
adapter(args);
}
args.next({
isMetadata: function (arg) { return index_1.isParamPropMetadata(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, paramPropAdapter, metadataExtends);
decorator.decoratorType = DecoratorType_1.DecoratorType.Property | DecoratorType_1.DecoratorType.Parameter;
return decorator;
}
exports.createParamPropDecorator = createParamPropDecorator;
//# sourceMappingURL=../../sourcemaps/core/factories/ParamPropDecoratorFactory.js.map