UNPKG

@eggjs/tegg-aop-plugin

Version:
48 lines 4.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AopContextHook = void 0; const tegg_1 = require("@eggjs/tegg"); const aop_decorator_1 = require("@eggjs/aop-decorator"); const tegg_metadata_1 = require("@eggjs/tegg-metadata"); const egg_module_common_1 = require("@eggjs/egg-module-common"); class AopContextHook { constructor(moduleHandler) { this.requestProtoList = []; this.moduleHandler = moduleHandler; for (const loadUnitInstance of this.moduleHandler.loadUnitInstances) { const iterator = loadUnitInstance.loadUnit.iterateEggPrototype(); for (const proto of iterator) { const protoWithClazz = proto; const clazz = protoWithClazz.clazz; if (!clazz) continue; const aspects = aop_decorator_1.AspectInfoUtil.getAspectList(clazz); for (const aspect of aspects) { for (const advice of aspect.adviceList) { const adviceProto = tegg_1.PrototypeUtil.getClazzProto(advice.clazz); if (!adviceProto) { throw tegg_metadata_1.TeggError.create(`Aop Advice(${advice.clazz.name}) not found in loadUnits`, 'advice_not_found'); } if (adviceProto.initType === tegg_1.ObjectInitType.CONTEXT) { this.requestProtoList.push({ name: advice.name, proto: adviceProto, }); } } } } } } async preCreate(_, ctx) { // compatible with egg controller // add context aspect to ctx if (!ctx.get(egg_module_common_1.ROOT_PROTO)) { for (const proto of this.requestProtoList) { ctx.addProtoToCreate(proto.name, proto.proto); } } } } exports.AopContextHook = AopContextHook; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW9wQ29udGV4dEhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJBb3BDb250ZXh0SG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxzQ0FBNEQ7QUFDNUQsd0RBQXNEO0FBQ3RELHdEQUErRDtBQUMvRCxnRUFBc0Q7QUFXdEQsTUFBYSxjQUFjO0lBSXpCLFlBQVksYUFBMkM7UUFGL0MscUJBQWdCLEdBQXlCLEVBQUUsQ0FBQztRQUdsRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxLQUFLLE1BQU0sZ0JBQWdCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BFLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ2pFLEtBQUssTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sY0FBYyxHQUFHLEtBQThCLENBQUM7Z0JBQ3RELE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxLQUFLO29CQUFFLFNBQVM7Z0JBQ3JCLE1BQU0sT0FBTyxHQUFHLDhCQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUM3QixLQUFLLE1BQU0sTUFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQzt3QkFDdkMsTUFBTSxXQUFXLEdBQUcsb0JBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBNkIsQ0FBQzt3QkFDMUYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDOzRCQUNqQixNQUFNLHlCQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLDBCQUEwQixFQUFFLGtCQUFrQixDQUFDLENBQUM7d0JBQ3hHLENBQUM7d0JBQ0QsSUFBSSxXQUFXLENBQUMsUUFBUSxLQUFLLHFCQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7NEJBQ3BELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0NBQ3pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQ0FDakIsS0FBSyxFQUFFLFdBQVc7NkJBQ25CLENBQUMsQ0FBQzt3QkFDTCxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQWU7UUFDaEMsaUNBQWlDO1FBQ2pDLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyw4QkFBVSxDQUFDLEVBQUUsQ0FBQztZQUN6QixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMxQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF4Q0Qsd0NBd0NDIn0=