@eggjs/aop-decorator
Version:
tegg aop decorator
48 lines • 4.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Crosscut = Crosscut;
const tegg_types_1 = require("@eggjs/tegg-types");
const CrosscutInfoUtil_1 = require("../util/CrosscutInfoUtil");
const PointcutInfo_1 = require("../model/PointcutInfo");
const defaultCrossOptions = {
order: 100,
};
function Crosscut(param, options) {
return function (constructor) {
var _a, _b, _c;
let crosscutInfo;
if (param.type === tegg_types_1.PointcutType.CLASS) {
crosscutInfo = {
pointcutInfo: new PointcutInfo_1.ClassPointInfo(param.clazz, param.methodName),
adviceInfo: {
clazz: constructor,
order: (_a = options === null || options === void 0 ? void 0 : options.order) !== null && _a !== void 0 ? _a : defaultCrossOptions.order,
adviceParams: options === null || options === void 0 ? void 0 : options.adviceParams,
},
};
}
else if (param.type === tegg_types_1.PointcutType.NAME) {
crosscutInfo = {
pointcutInfo: new PointcutInfo_1.NamePointInfo(param.className, param.methodName),
adviceInfo: {
clazz: constructor,
order: (_b = options === null || options === void 0 ? void 0 : options.order) !== null && _b !== void 0 ? _b : defaultCrossOptions.order,
adviceParams: options === null || options === void 0 ? void 0 : options.adviceParams,
},
};
}
else {
crosscutInfo = {
pointcutInfo: new PointcutInfo_1.CustomPointInfo(param.callback),
adviceInfo: {
clazz: constructor,
order: (_c = options === null || options === void 0 ? void 0 : options.order) !== null && _c !== void 0 ? _c : defaultCrossOptions.order,
adviceParams: options === null || options === void 0 ? void 0 : options.adviceParams,
},
};
}
CrosscutInfoUtil_1.CrosscutInfoUtil.setIsCrosscutAdvice(true, constructor);
CrosscutInfoUtil_1.CrosscutInfoUtil.addCrosscutInfo(crosscutInfo, constructor);
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3Jvc3NjdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGVjb3JhdG9yL0Nyb3NzY3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0EsNEJBa0NDO0FBM0NELGtEQUFpRDtBQUVqRCwrREFBNEQ7QUFDNUQsd0RBQXVGO0FBRXZGLE1BQU0sbUJBQW1CLEdBQUc7SUFDMUIsS0FBSyxFQUFFLEdBQUc7Q0FDWCxDQUFDO0FBRUYsU0FBZ0IsUUFBUSxDQUFDLEtBQW9CLEVBQUUsT0FBeUI7SUFDdEUsT0FBTyxVQUFTLFdBQXVDOztRQUNyRCxJQUFJLFlBQTBCLENBQUM7UUFDL0IsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLHlCQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEMsWUFBWSxHQUFHO2dCQUNiLFlBQVksRUFBRSxJQUFJLDZCQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDO2dCQUMvRCxVQUFVLEVBQUU7b0JBQ1YsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLEtBQUssRUFBRSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLG1DQUFJLG1CQUFtQixDQUFDLEtBQUs7b0JBQ2xELFlBQVksRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsWUFBWTtpQkFDcEM7YUFDRixDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyx5QkFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVDLFlBQVksR0FBRztnQkFDYixZQUFZLEVBQUUsSUFBSSw0QkFBYSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQztnQkFDbEUsVUFBVSxFQUFFO29CQUNWLEtBQUssRUFBRSxXQUFXO29CQUNsQixLQUFLLEVBQUUsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSyxtQ0FBSSxtQkFBbUIsQ0FBQyxLQUFLO29CQUNsRCxZQUFZLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVk7aUJBQ3BDO2FBQ0YsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxHQUFHO2dCQUNiLFlBQVksRUFBRSxJQUFJLDhCQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztnQkFDakQsVUFBVSxFQUFFO29CQUNWLEtBQUssRUFBRSxXQUFXO29CQUNsQixLQUFLLEVBQUUsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsS0FBSyxtQ0FBSSxtQkFBbUIsQ0FBQyxLQUFLO29CQUNsRCxZQUFZLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVk7aUJBQ3BDO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxtQ0FBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDeEQsbUNBQWdCLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUM7QUFDSixDQUFDIn0=