@eggjs/aop-decorator
Version:
tegg aop decorator
26 lines • 2.21 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Pointcut = Pointcut;
const PointcutAdviceInfoUtil_1 = require("../util/PointcutAdviceInfoUtil");
const assert_1 = __importDefault(require("assert"));
const AdviceInfoUtil_1 = require("../util/AdviceInfoUtil");
const defaultPointcutOptions = {
order: 1000,
};
function Pointcut(adviceClazz, options) {
return function (target, propertyKey) {
var _a;
(0, assert_1.default)(AdviceInfoUtil_1.AdviceInfoUtil.isAdvice(adviceClazz), `class ${adviceClazz} has no @Advice decorator`);
const targetClazz = target.constructor;
const methodName = propertyKey;
PointcutAdviceInfoUtil_1.PointcutAdviceInfoUtil.addPointcutAdviceInfo({
clazz: adviceClazz,
order: (_a = options === null || options === void 0 ? void 0 : options.order) !== null && _a !== void 0 ? _a : defaultPointcutOptions.order,
adviceParams: options === null || options === void 0 ? void 0 : options.adviceParams,
}, targetClazz, methodName);
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9pbnRjdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVjb3JhdG9yL1BvaW50Y3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0EsNEJBV0M7QUFuQkQsMkVBQXdFO0FBQ3hFLG9EQUE0QjtBQUM1QiwyREFBd0Q7QUFFeEQsTUFBTSxzQkFBc0IsR0FBRztJQUM3QixLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixTQUFnQixRQUFRLENBQTRCLFdBQTZDLEVBQUUsT0FBNEI7SUFDN0gsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF3Qjs7UUFDbkQsSUFBQSxnQkFBTSxFQUFDLCtCQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsV0FBVywyQkFBMkIsQ0FBQyxDQUFDO1FBQzlGLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQzVELE1BQU0sVUFBVSxHQUFHLFdBQXFCLENBQUM7UUFDekMsK0NBQXNCLENBQUMscUJBQXFCLENBQUM7WUFDM0MsS0FBSyxFQUFFLFdBQVc7WUFDbEIsS0FBSyxFQUFFLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssbUNBQUksc0JBQXNCLENBQUMsS0FBSztZQUNyRCxZQUFZLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVk7U0FDcEMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9