@eggjs/tegg-aop-plugin 3.14.2 → 3.14.3

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.
@@ -0,0 +1,17 @@
1
+ import { Application } from 'egg';
2
+ import { EggProtoImplClass, LifecycleHook } from '@eggjs/tegg';
3
+ import { EggContext, EggContextLifecycleContext } from '@eggjs/tegg-runtime';
4
+ import { EggPrototype } from '@eggjs/tegg-metadata';
5
+ export interface EggPrototypeWithClazz extends EggPrototype {
6
+ clazz?: EggProtoImplClass;
7
+ }
8
+ export interface ProtoToCreate {
9
+ name: string;
10
+ proto: EggPrototype;
11
+ }
12
+ export declare class AopContextHook implements LifecycleHook<EggContextLifecycleContext, EggContext> {
13
+ private readonly moduleHandler;
14
+ private requestProtoList;
15
+ constructor(moduleHandler: Application['moduleHandler']);
16
+ preCreate(_: any, ctx: EggContext): Promise<void>;
17
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AopContextHook = void 0;
4
+ const tegg_1 = require("@eggjs/tegg");
5
+ const aop_decorator_1 = require("@eggjs/aop-decorator");
6
+ const tegg_metadata_1 = require("@eggjs/tegg-metadata");
7
+ const egg_module_common_1 = require("@eggjs/egg-module-common");
8
+ class AopContextHook {
9
+ constructor(moduleHandler) {
10
+ this.requestProtoList = [];
11
+ this.moduleHandler = moduleHandler;
12
+ for (const loadUnitInstance of this.moduleHandler.loadUnitInstances) {
13
+ const iterator = loadUnitInstance.loadUnit.iterateEggPrototype();
14
+ for (const proto of iterator) {
15
+ const protoWithClazz = proto;
16
+ const clazz = protoWithClazz.clazz;
17
+ if (!clazz)
18
+ continue;
19
+ const aspects = aop_decorator_1.AspectInfoUtil.getAspectList(clazz);
20
+ for (const aspect of aspects) {
21
+ for (const advice of aspect.adviceList) {
22
+ const adviceProto = tegg_1.PrototypeUtil.getClazzProto(advice.clazz);
23
+ if (!adviceProto) {
24
+ throw tegg_metadata_1.TeggError.create(`Aop Advice(${advice.clazz.name}) not found in loadUnits`, 'advice_not_found');
25
+ }
26
+ if (adviceProto.initType === tegg_1.ObjectInitType.CONTEXT) {
27
+ this.requestProtoList.push({
28
+ name: advice.name,
29
+ proto: adviceProto,
30
+ });
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
37
+ async preCreate(_, ctx) {
38
+ // compatible with egg controller
39
+ // add context aspect to ctx
40
+ if (!ctx.get(egg_module_common_1.ROOT_PROTO)) {
41
+ for (const proto of this.requestProtoList) {
42
+ ctx.addProtoToCreate(proto.name, proto.proto);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ exports.AopContextHook = AopContextHook;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW9wQ29udGV4dEhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJBb3BDb250ZXh0SG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxzQ0FBOEY7QUFFOUYsd0RBQXNEO0FBQ3RELHdEQUErRDtBQUMvRCxnRUFBc0Q7QUFXdEQsTUFBYSxjQUFjO0lBSXpCLFlBQVksYUFBMkM7UUFGL0MscUJBQWdCLEdBQXlCLEVBQUUsQ0FBQztRQUdsRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxLQUFLLE1BQU0sZ0JBQWdCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRTtZQUNuRSxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNqRSxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsRUFBRTtnQkFDNUIsTUFBTSxjQUFjLEdBQUcsS0FBOEIsQ0FBQztnQkFDdEQsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDbkMsSUFBSSxDQUFDLEtBQUs7b0JBQUUsU0FBUztnQkFDckIsTUFBTSxPQUFPLEdBQUcsOEJBQWMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO29CQUM1QixLQUFLLE1BQU0sTUFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7d0JBQ3RDLE1BQU0sV0FBVyxHQUFHLG9CQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQTZCLENBQUM7d0JBQzFGLElBQUksQ0FBQyxXQUFXLEVBQUU7NEJBQ2hCLE1BQU0seUJBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksMEJBQTBCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQzt5QkFDdkc7d0JBQ0QsSUFBSSxXQUFXLENBQUMsUUFBUSxLQUFLLHFCQUFjLENBQUMsT0FBTyxFQUFFOzRCQUNuRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2dDQUN6QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0NBQ2pCLEtBQUssRUFBRSxXQUFXOzZCQUNuQixDQUFDLENBQUM7eUJBQ0o7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQWU7UUFDaEMsaUNBQWlDO1FBQ2pDLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyw4QkFBVSxDQUFDLEVBQUU7WUFDeEIsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMvQztTQUNGO0lBQ0gsQ0FBQztDQUNGO0FBeENELHdDQXdDQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/tegg-aop-plugin",
3
- "version": "3.14.2",
3
+ "version": "3.14.3",
4
4
  "eggPlugin": {
5
5
  "name": "aopModule",
6
6
  "dependencies": [
@@ -18,7 +18,9 @@
18
18
  ],
19
19
  "files": [
20
20
  "app.js",
21
- "app.d.ts"
21
+ "app.d.ts",
22
+ "lib/**/*.js",
23
+ "lib/**/*.d.ts"
22
24
  ],
23
25
  "scripts": {
24
26
  "test": "cross-env NODE_ENV=test NODE_OPTIONS='--no-deprecation' mocha",
@@ -40,12 +42,12 @@
40
42
  "node": ">=14.0.0"
41
43
  },
42
44
  "dependencies": {
43
- "@eggjs/tegg": "^3.14.2",
44
- "@eggjs/tegg-aop-runtime": "^3.14.2"
45
+ "@eggjs/tegg": "^3.14.3",
46
+ "@eggjs/tegg-aop-runtime": "^3.14.3"
45
47
  },
46
48
  "devDependencies": {
47
- "@eggjs/tegg-config": "^3.14.2",
48
- "@eggjs/tegg-plugin": "^3.14.2",
49
+ "@eggjs/tegg-config": "^3.14.3",
50
+ "@eggjs/tegg-plugin": "^3.14.3",
49
51
  "@types/mocha": "^10.0.1",
50
52
  "@types/node": "^20.2.4",
51
53
  "cross-env": "^7.0.3",
@@ -58,5 +60,5 @@
58
60
  "publishConfig": {
59
61
  "access": "public"
60
62
  },
61
- "gitHead": "f39a82d4f36fcfcc63c7f078f5657893d39ac9fb"
63
+ "gitHead": "467cbb2ff77708529b7402510bd69da71d206264"
62
64
  }