@eggjs/tegg-aop-runtime 3.46.3 → 3.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export * from './src/EggPrototypeCrossCutHook';
2
2
  export * from './src/EggObjectAopHook';
3
3
  export * from './src/LoadUnitAopHook';
4
+ export * from './src/CrossCutGraphHook';
5
+ export * from './src/PointCutGraphHook';
package/dist/index.js CHANGED
@@ -17,4 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./src/EggPrototypeCrossCutHook"), exports);
18
18
  __exportStar(require("./src/EggObjectAopHook"), exports);
19
19
  __exportStar(require("./src/LoadUnitAopHook"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUVBQStDO0FBQy9DLHlEQUF1QztBQUN2Qyx3REFBc0MifQ==
20
+ __exportStar(require("./src/CrossCutGraphHook"), exports);
21
+ __exportStar(require("./src/PointCutGraphHook"), exports);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUVBQStDO0FBQy9DLHlEQUF1QztBQUN2Qyx3REFBc0M7QUFFdEMsMERBQXdDO0FBQ3hDLDBEQUF3QyJ9
@@ -0,0 +1,2 @@
1
+ import { GlobalGraph } from '@eggjs/tegg-metadata';
2
+ export declare function crossCutGraphHook(globalGraph: GlobalGraph): void;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.crossCutGraphHook = crossCutGraphHook;
4
+ const aop_decorator_1 = require("@eggjs/aop-decorator");
5
+ const tegg_metadata_1 = require("@eggjs/tegg-metadata");
6
+ function crossCutGraphHook(globalGraph) {
7
+ for (const moduleNode of globalGraph.moduleGraph.nodes.values()) {
8
+ for (const crossCutProtoNode of moduleNode.val.protos) {
9
+ const protoNodes = findCrossCuttedClazz(globalGraph, crossCutProtoNode);
10
+ if (!protoNodes)
11
+ continue;
12
+ for (const crossCuttedProtoNode of protoNodes) {
13
+ const crossCuttedModuleNode = globalGraph.findModuleNode(crossCuttedProtoNode.val.proto.instanceModuleName);
14
+ if (!crossCuttedModuleNode)
15
+ continue;
16
+ globalGraph.addInject(crossCuttedModuleNode, crossCuttedProtoNode, crossCutProtoNode, crossCutProtoNode.val.proto.name);
17
+ }
18
+ }
19
+ }
20
+ }
21
+ function findCrossCuttedClazz(globalGraph, protoNode) {
22
+ const proto = protoNode.val.proto;
23
+ if (!tegg_metadata_1.ClassProtoDescriptor.isClassProtoDescriptor(proto)) {
24
+ return;
25
+ }
26
+ if (!aop_decorator_1.CrosscutInfoUtil.isCrosscutAdvice(proto.clazz)) {
27
+ return;
28
+ }
29
+ const crosscutInfoList = aop_decorator_1.CrosscutInfoUtil.getCrosscutInfoList(proto.clazz);
30
+ const result = [];
31
+ // eslint-disable-next-line no-labels
32
+ crosscut: for (const crosscutInfo of crosscutInfoList) {
33
+ for (const protoNode of globalGraph.protoGraph.nodes.values()) {
34
+ if (checkClazzMatchCrossCut(protoNode, crosscutInfo)) {
35
+ result.push(protoNode);
36
+ // eslint-disable-next-line no-labels
37
+ break crosscut;
38
+ }
39
+ }
40
+ }
41
+ return result;
42
+ }
43
+ function checkClazzMatchCrossCut(protoNode, crosscutInfo) {
44
+ const proto = protoNode.val.proto;
45
+ if (!tegg_metadata_1.ClassProtoDescriptor.isClassProtoDescriptor(proto)) {
46
+ return;
47
+ }
48
+ const allMethods = aop_decorator_1.AspectMetaBuilder.getAllMethods(proto.clazz);
49
+ for (const method of allMethods) {
50
+ if (crosscutInfo.pointcutInfo.match(proto.clazz, method)) {
51
+ return true;
52
+ }
53
+ }
54
+ return false;
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3Jvc3NDdXRHcmFwaEhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ3Jvc3NDdXRHcmFwaEhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSw4Q0FnQkM7QUF6QkQsd0RBQXlGO0FBRXpGLHdEQUs4QjtBQUU5QixTQUFnQixpQkFBaUIsQ0FBQyxXQUF3QjtJQUN4RCxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDaEUsS0FBSyxNQUFNLGlCQUFpQixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEQsTUFBTSxVQUFVLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLFVBQVU7Z0JBQUUsU0FBUztZQUMxQixLQUFLLE1BQU0sb0JBQW9CLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzlDLE1BQU0scUJBQXFCLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQzVHLElBQUksQ0FBQyxxQkFBcUI7b0JBQUUsU0FBUztnQkFDckMsV0FBVyxDQUFDLFNBQVMsQ0FDbkIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxXQUF3QixFQUFFLFNBQW9EO0lBQzFHLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxvQ0FBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hELE9BQU87SUFDVCxDQUFDO0lBQ0QsSUFBSSxDQUFDLGdDQUFnQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3BELE9BQU87SUFDVCxDQUFDO0lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxnQ0FBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0UsTUFBTSxNQUFNLEdBQWdELEVBQUUsQ0FBQztJQUMvRCxxQ0FBcUM7SUFDckMsUUFBUSxFQUFFLEtBQUssTUFBTSxZQUFZLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUN0RCxLQUFLLE1BQU0sU0FBUyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDOUQsSUFBSSx1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFDckQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDdkIscUNBQXFDO2dCQUNyQyxNQUFNLFFBQVEsQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FBQyxTQUErQixFQUFFLFlBQTBCO0lBQzFGLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxvQ0FBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hELE9BQU87SUFDVCxDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsaUNBQWlCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRSxLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLElBQUksWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3pELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMifQ==
@@ -0,0 +1,2 @@
1
+ import { GlobalGraph } from '@eggjs/tegg-metadata';
2
+ export declare function pointCutGraphHook(globalGraph: GlobalGraph): void;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.pointCutGraphHook = pointCutGraphHook;
7
+ const aop_decorator_1 = require("@eggjs/aop-decorator");
8
+ const core_decorator_1 = require("@eggjs/core-decorator");
9
+ const tegg_metadata_1 = require("@eggjs/tegg-metadata");
10
+ const node_assert_1 = __importDefault(require("node:assert"));
11
+ function pointCutGraphHook(globalGraph) {
12
+ for (const moduleNode of globalGraph.moduleGraph.nodes.values()) {
13
+ for (const pointCuttedProtoNode of moduleNode.val.protos) {
14
+ const pointCutAdviceProtoList = findPointCutAdvice(globalGraph, pointCuttedProtoNode);
15
+ if (!pointCutAdviceProtoList)
16
+ continue;
17
+ for (const pointCutAdviceProto of pointCutAdviceProtoList) {
18
+ globalGraph.addInject(moduleNode, pointCuttedProtoNode, pointCutAdviceProto, pointCutAdviceProto.val.proto.name);
19
+ }
20
+ }
21
+ }
22
+ }
23
+ function findPointCutAdvice(globalGraph, protoNode) {
24
+ var _a;
25
+ const proto = protoNode.val.proto;
26
+ if (!tegg_metadata_1.ClassProtoDescriptor.isClassProtoDescriptor(proto)) {
27
+ return;
28
+ }
29
+ const result = new Set();
30
+ const allMethods = aop_decorator_1.AspectMetaBuilder.getAllMethods(proto.clazz);
31
+ for (const method of allMethods) {
32
+ const adviceInfoList = aop_decorator_1.PointcutAdviceInfoUtil.getPointcutAdviceInfoList(proto.clazz, method);
33
+ for (const { clazz } of adviceInfoList) {
34
+ const property = core_decorator_1.PrototypeUtil.getProperty(clazz);
35
+ (0, node_assert_1.default)(property, 'not found property');
36
+ const injectProto = globalGraph.findDependencyProtoNode(protoNode.val.proto, {
37
+ objName: property.name,
38
+ refName: property.name,
39
+ qualifiers: [
40
+ ...(_a = property === null || property === void 0 ? void 0 : property.qualifiers) !== null && _a !== void 0 ? _a : [],
41
+ ...core_decorator_1.QualifierUtil.getProtoQualifiers(clazz),
42
+ ],
43
+ });
44
+ if (injectProto) {
45
+ result.add(injectProto);
46
+ }
47
+ }
48
+ }
49
+ return Array.from(result);
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9pbnRDdXRHcmFwaEhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUG9pbnRDdXRHcmFwaEhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFXQSw4Q0FjQztBQXpCRCx3REFBaUY7QUFDakYsMERBQXFFO0FBRXJFLHdEQUs4QjtBQUM5Qiw4REFBaUM7QUFFakMsU0FBZ0IsaUJBQWlCLENBQUMsV0FBd0I7SUFDeEQsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBQ2hFLEtBQUssTUFBTSxvQkFBb0IsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pELE1BQU0sdUJBQXVCLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFDdEYsSUFBSSxDQUFDLHVCQUF1QjtnQkFBRSxTQUFTO1lBQ3ZDLEtBQUssTUFBTSxtQkFBbUIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO2dCQUMxRCxXQUFXLENBQUMsU0FBUyxDQUNuQixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLFdBQXdCLEVBQUUsU0FBb0Q7O0lBQ3hHLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxvQ0FBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hELE9BQU87SUFDVCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQW1ELElBQUksR0FBRyxFQUFFLENBQUM7SUFDekUsTUFBTSxVQUFVLEdBQUcsaUNBQWlCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRSxLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sY0FBYyxHQUFHLHNDQUFzQixDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0YsS0FBSyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksY0FBYyxFQUFFLENBQUM7WUFDdkMsTUFBTSxRQUFRLEdBQUcsOEJBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsSUFBQSxxQkFBTSxFQUFDLFFBQVEsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtnQkFDM0UsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJO2dCQUN0QixPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQ3RCLFVBQVUsRUFBRTtvQkFDVixHQUFHLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLFVBQVUsbUNBQUksRUFBRTtvQkFDN0IsR0FBRyw4QkFBYSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztpQkFDM0M7YUFDRixDQUFDLENBQUM7WUFDSCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNoQixNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM1QixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/tegg-aop-runtime",
3
- "version": "3.46.3",
3
+ "version": "3.47.0",
4
4
  "description": "tegg aop",
5
5
  "main": "dist/index.js",
6
6
  "eggModule": {
@@ -43,18 +43,18 @@
43
43
  "access": "public"
44
44
  },
45
45
  "dependencies": {
46
- "@eggjs/aop-decorator": "^3.46.3",
47
- "@eggjs/core-decorator": "^3.46.3",
48
- "@eggjs/tegg-common-util": "^3.46.3",
49
- "@eggjs/tegg-lifecycle": "^3.46.3",
50
- "@eggjs/tegg-metadata": "^3.46.3",
51
- "@eggjs/tegg-runtime": "^3.46.3",
52
- "@eggjs/tegg-types": "^3.46.3",
46
+ "@eggjs/aop-decorator": "^3.47.0",
47
+ "@eggjs/core-decorator": "^3.47.0",
48
+ "@eggjs/tegg-common-util": "^3.47.0",
49
+ "@eggjs/tegg-lifecycle": "^3.47.0",
50
+ "@eggjs/tegg-metadata": "^3.47.0",
51
+ "@eggjs/tegg-runtime": "^3.47.0",
52
+ "@eggjs/tegg-types": "^3.47.0",
53
53
  "koa-compose": "^4.1.0"
54
54
  },
55
55
  "devDependencies": {
56
- "@eggjs/module-test-util": "^3.46.3",
57
- "@eggjs/tegg-loader": "^3.46.3",
56
+ "@eggjs/module-test-util": "^3.47.0",
57
+ "@eggjs/tegg-loader": "^3.47.0",
58
58
  "@types/mocha": "^10.0.1",
59
59
  "@types/node": "^20.2.4",
60
60
  "cross-env": "^7.0.3",
@@ -63,5 +63,5 @@
63
63
  "ts-node": "^10.9.1",
64
64
  "typescript": "^5.0.4"
65
65
  },
66
- "gitHead": "ccff56782b11c32894622755289e325d6c99a325"
66
+ "gitHead": "ae4209364e2d0ed386b3a1fa1ba6551f327637fb"
67
67
  }