@eggjs/aop-decorator
Version:
tegg aop decorator
31 lines • 2.46 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CrosscutAdviceFactory = void 0;
const node_assert_1 = __importDefault(require("node:assert"));
const CrosscutInfoUtil_1 = require("./util/CrosscutInfoUtil");
class CrosscutAdviceFactory {
constructor() {
this.crosscutAdviceClazzList = [];
}
registerCrossAdviceClazz(clazz) {
(0, node_assert_1.default)(CrosscutInfoUtil_1.CrosscutInfoUtil.isCrosscutAdvice(clazz), `clazz ${clazz.name} is not crosscut advice`);
this.crosscutAdviceClazzList.push(clazz);
}
getAdvice(clazz, method) {
const result = [];
for (const crosscutAdviceClazz of this.crosscutAdviceClazzList) {
const crosscutInfoList = CrosscutInfoUtil_1.CrosscutInfoUtil.getCrosscutInfoList(crosscutAdviceClazz);
for (const crosscutInfo of crosscutInfoList) {
if (crosscutInfo.pointcutInfo.match(clazz, method)) {
result.push(crosscutInfo.adviceInfo);
}
}
}
return result;
}
}
exports.CrosscutAdviceFactory = CrosscutAdviceFactory;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3Jvc3NjdXRBZHZpY2VGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Nyb3NzY3V0QWR2aWNlRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4REFBaUM7QUFFakMsOERBQTJEO0FBRTNELE1BQWEscUJBQXFCO0lBQWxDO1FBQ21CLDRCQUF1QixHQUFzQyxFQUFFLENBQUM7SUFtQm5GLENBQUM7SUFqQkMsd0JBQXdCLENBQUMsS0FBaUM7UUFDeEQsSUFBQSxxQkFBTSxFQUFDLG1DQUFnQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsS0FBSyxDQUFDLElBQUkseUJBQXlCLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBd0IsRUFBRSxNQUFtQjtRQUNyRCxNQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDO1FBQ3JDLEtBQUssTUFBTSxtQkFBbUIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUMvRCxNQUFNLGdCQUFnQixHQUFHLG1DQUFnQixDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDbkYsS0FBSyxNQUFNLFlBQVksSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBcEJELHNEQW9CQyJ9