UNPKG

tsioc

Version:

tsioc is AOP, Ioc container, via typescript decorator

44 lines (42 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var index_1 = require("../../core/index"); var index_2 = require("../../utils/index"); function createAdviceDecorator(adviceName, adapter, afterPointcutAdapter, metadataExtends) { return index_1.createMethodDecorator('Advice', function (args) { if (adapter) { adapter(args); } args.next({ isMetadata: function (arg) { return index_2.isClassMetadata(arg, ['pointcut']); }, match: function (arg) { return index_2.isString(arg) || index_2.isRegExp(arg); }, setMetadata: function (metadata, arg) { metadata.pointcut = arg; } }); if (afterPointcutAdapter) { afterPointcutAdapter(args); } args.next({ match: function (arg) { return index_2.isString(arg); }, setMetadata: function (metadata, arg) { metadata.annotationArgName = arg; } }); args.next({ match: function (arg) { return index_2.isString(arg); }, setMetadata: function (metadata, arg) { metadata.annotation = arg; } }); }, function (metadata) { if (metadataExtends) { metadata = metadataExtends(metadata); } metadata.adviceName = adviceName; return metadata; }); } exports.createAdviceDecorator = createAdviceDecorator; exports.Advice = createAdviceDecorator('Advice'); //# sourceMappingURL=../sourcemaps/decorators/Advice.js.map