@eggjs/tegg-aop-runtime 3.1.0 → 3.2.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/tegg-aop-runtime",
3
- "version": "3.1.0",
3
+ "version": "3.2.2",
4
4
  "description": "tegg aop",
5
5
  "main": "dist/index.js",
6
6
  "eggModule": {
@@ -19,11 +19,11 @@
19
19
  "aop"
20
20
  ],
21
21
  "scripts": {
22
- "clean": "tsc -b --clean",
22
+ "test": "cross-env NODE_ENV=test NODE_OPTIONS='--no-deprecation' mocha",
23
+ "clean": "tsc -b --clean && rm -rf dist",
23
24
  "tsc": "npm run clean && tsc -p ./tsconfig.json",
24
25
  "tsc:pub": "npm run clean && tsc -p ./tsconfig.pub.json",
25
- "prepublishOnly": "npm run tsc:pub",
26
- "autod": "autod"
26
+ "prepublishOnly": "npm run tsc:pub"
27
27
  },
28
28
  "author": "killagu <killa123@126.com>",
29
29
  "license": "MIT",
@@ -43,17 +43,18 @@
43
43
  "access": "public"
44
44
  },
45
45
  "dependencies": {
46
- "@eggjs/aop-decorator": "^3.1.0",
47
- "@eggjs/core-decorator": "^3.1.0",
48
- "@eggjs/tegg-common-util": "^1.2.3",
49
- "@eggjs/tegg-lifecycle": "^1.0.0",
50
- "@eggjs/tegg-metadata": "^3.1.0",
51
- "@eggjs/tegg-runtime": "^3.1.0",
46
+ "@eggjs/aop-decorator": "^3.2.2",
47
+ "@eggjs/core-decorator": "^3.2.2",
48
+ "@eggjs/tegg-common-util": "^3.2.2",
49
+ "@eggjs/tegg-lifecycle": "^3.2.2",
50
+ "@eggjs/tegg-metadata": "^3.2.2",
51
+ "@eggjs/tegg-runtime": "^3.2.2",
52
52
  "koa-compose": "^4.1.0"
53
53
  },
54
54
  "devDependencies": {
55
- "@eggjs/module-test-util": "^3.1.0",
56
- "@eggjs/tegg-loader": "^3.1.0"
55
+ "@eggjs/module-test-util": "^3.2.2",
56
+ "@eggjs/tegg-loader": "^3.2.2",
57
+ "mm": "^3.2.1"
57
58
  },
58
- "gitHead": "19ff0ca1dc6286fc54445c30ccff64b582c59fd0"
59
+ "gitHead": "1db4e5320a0ea19b450df7d99ab7939f3ad48f6e"
59
60
  }
@@ -1,3 +0,0 @@
1
- export * from './src/EggPrototypeCrossCutHook';
2
- export * from './src/EggObjectAopHook';
3
- export * from './src/LoadUnitAopHook';
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./src/EggPrototypeCrossCutHook"), exports);
18
- __exportStar(require("./src/EggObjectAopHook"), exports);
19
- __exportStar(require("./src/LoadUnitAopHook"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUVBQStDO0FBQy9DLHlEQUF1QztBQUN2Qyx3REFBc0MifQ==
@@ -1,13 +0,0 @@
1
- import { AdviceContext, AspectAdvice } from '@eggjs/aop-decorator';
2
- export declare class AspectExecutor {
3
- obj: Object;
4
- method: PropertyKey;
5
- aspectAdviceList: readonly AspectAdvice[];
6
- constructor(obj: object, method: PropertyKey, aspectAdviceList: readonly AspectAdvice[]);
7
- execute(...args: any[]): Promise<void>;
8
- beforeCall(ctx: AdviceContext): Promise<void>;
9
- afterReturn(ctx: AdviceContext, result: any): Promise<void>;
10
- afterThrow(ctx: AdviceContext, error: Error): Promise<void>;
11
- afterFinally(ctx: AdviceContext): Promise<void>;
12
- doExecute(ctx: AdviceContext): Promise<void>;
13
- }
@@ -1,84 +0,0 @@
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.AspectExecutor = void 0;
7
- const koa_compose_1 = __importDefault(require("koa-compose"));
8
- class AspectExecutor {
9
- constructor(obj, method, aspectAdviceList) {
10
- this.obj = obj;
11
- this.method = method;
12
- this.aspectAdviceList = aspectAdviceList;
13
- }
14
- async execute(...args) {
15
- const ctx = {
16
- that: this.obj,
17
- method: this.method,
18
- args,
19
- };
20
- await this.beforeCall(ctx);
21
- try {
22
- const result = await this.doExecute(ctx);
23
- await this.afterReturn(ctx, result);
24
- return result;
25
- }
26
- catch (e) {
27
- await this.afterThrow(ctx, e);
28
- throw e;
29
- }
30
- finally {
31
- await this.afterFinally(ctx);
32
- }
33
- }
34
- async beforeCall(ctx) {
35
- for (const aspectAdvice of this.aspectAdviceList) {
36
- const advice = ctx.that[aspectAdvice.name];
37
- if (advice.beforeCall) {
38
- await advice.beforeCall(ctx);
39
- }
40
- }
41
- }
42
- async afterReturn(ctx, result) {
43
- for (const aspectAdvice of this.aspectAdviceList) {
44
- const advice = ctx.that[aspectAdvice.name];
45
- if (advice.afterReturn) {
46
- await advice.afterReturn(ctx, result);
47
- }
48
- }
49
- }
50
- async afterThrow(ctx, error) {
51
- for (const aspectAdvice of this.aspectAdviceList) {
52
- const advice = ctx.that[aspectAdvice.name];
53
- if (advice.afterThrow) {
54
- await advice.afterThrow(ctx, error);
55
- }
56
- }
57
- }
58
- async afterFinally(ctx) {
59
- for (const aspectAdvice of this.aspectAdviceList) {
60
- const advice = ctx.that[aspectAdvice.name];
61
- if (advice.afterFinally) {
62
- await advice.afterFinally(ctx);
63
- }
64
- }
65
- }
66
- async doExecute(ctx) {
67
- const lastCall = () => {
68
- const originMethod = Object.getPrototypeOf(this.obj)[this.method];
69
- return Reflect.apply(originMethod, ctx.that, ctx.args);
70
- };
71
- const functions = [];
72
- for (const aspectAdvice of this.aspectAdviceList) {
73
- const advice = ctx.that[aspectAdvice.name];
74
- const fn = advice.around;
75
- if (fn) {
76
- functions.push(fn.bind(advice));
77
- }
78
- }
79
- functions.push(lastCall);
80
- return (0, koa_compose_1.default)(functions)(ctx);
81
- }
82
- }
83
- exports.AspectExecutor = AspectExecutor;
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXNwZWN0RXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQXNwZWN0RXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsOERBQWtDO0FBR2xDLE1BQWEsY0FBYztJQUt6QixZQUFZLEdBQVcsRUFBRSxNQUFtQixFQUFFLGdCQUF5QztRQUNyRixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQVc7UUFDMUIsTUFBTSxHQUFHLEdBQWtCO1lBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRztZQUNkLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixJQUFJO1NBQ0wsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixJQUFJO1lBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEMsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLENBQUMsQ0FBQztTQUNUO2dCQUFTO1lBQ1IsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBa0I7UUFDakMsS0FBSyxNQUFNLFlBQVksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVB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
@@ -1,6 +0,0 @@
1
- import { LifecycleHook } from '@eggjs/tegg-lifecycle';
2
- import { EggObject, EggObjectLifeCycleContext } from '@eggjs/tegg-runtime';
3
- export declare class EggObjectAopHook implements LifecycleHook<EggObjectLifeCycleContext, EggObject> {
4
- private hijackMethods;
5
- postCreate(_: EggObjectLifeCycleContext, eggObject: EggObject): Promise<void>;
6
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EggObjectAopHook = void 0;
4
- const aop_decorator_1 = require("@eggjs/aop-decorator");
5
- const AspectExecutor_1 = require("./AspectExecutor");
6
- class EggObjectAopHook {
7
- hijackMethods(obj, aspectList) {
8
- for (const aspect of aspectList) {
9
- const newExecutor = new AspectExecutor_1.AspectExecutor(obj, aspect.method, aspect.adviceList);
10
- obj[aspect.method] = newExecutor.execute.bind(newExecutor);
11
- }
12
- }
13
- async postCreate(_, eggObject) {
14
- const aspectList = eggObject.proto.getMetaData(aop_decorator_1.ASPECT_LIST);
15
- if (!aspectList || !aspectList.length)
16
- return;
17
- const propertyDesc = eggObject.constructor && Reflect.getOwnPropertyDescriptor(eggObject.constructor.prototype, 'obj');
18
- // process the lazy getter
19
- if (propertyDesc === null || propertyDesc === void 0 ? void 0 : propertyDesc.get) {
20
- let obj;
21
- const self = this;
22
- Object.defineProperty(eggObject, 'obj', {
23
- ...propertyDesc,
24
- get() {
25
- if (!obj) {
26
- obj = Reflect.apply(propertyDesc.get, eggObject, []);
27
- self.hijackMethods(obj, aspectList);
28
- }
29
- return obj;
30
- },
31
- });
32
- }
33
- else {
34
- this.hijackMethods(eggObject.obj, aspectList);
35
- }
36
- }
37
- }
38
- exports.EggObjectAopHook = EggObjectAopHook;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0QW9wSG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9FZ2dPYmplY3RBb3BIb29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHdEQUEyRDtBQUMzRCxxREFBa0Q7QUFFbEQsTUFBYSxnQkFBZ0I7SUFDbkIsYUFBYSxDQUFDLEdBQVEsRUFBRSxVQUF5QjtRQUN2RCxLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVUsRUFBRTtZQUMvQixNQUFNLFdBQVcsR0FBRyxJQUFJLCtCQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlFLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUE0QixFQUFFLFNBQW9CO1FBQ2pFLE1BQU0sVUFBVSxHQUE4QixTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQywyQkFBVyxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUM5QyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUUsQ0FBQztRQUN4SCwwQkFBMEI7UUFDMUIsSUFBSSxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsR0FBRyxFQUFFO1lBQ3JCLElBQUksR0FBRyxDQUFDO1lBQ1IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRTtnQkFDdEMsR0FBRyxZQUFZO2dCQUNmLEdBQUc7b0JBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDUixHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7cUJBQ3JDO29CQUNELE9BQU8sR0FBRyxDQUFDO2dCQUNiLENBQUM7YUFDRixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztDQUNGO0FBOUJELDRDQThCQyJ9
@@ -1,8 +0,0 @@
1
- import { LifecycleHook } from '@eggjs/tegg-lifecycle';
2
- import { CrosscutAdviceFactory } from '@eggjs/aop-decorator';
3
- import { EggPrototype, EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
4
- export declare class EggPrototypeCrossCutHook implements LifecycleHook<EggPrototypeLifecycleContext, EggPrototype> {
5
- private readonly crosscutAdviceFactory;
6
- constructor(crosscutAdviceFactory: CrosscutAdviceFactory);
7
- preCreate(ctx: EggPrototypeLifecycleContext): Promise<void>;
8
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EggPrototypeCrossCutHook = void 0;
4
- const aop_decorator_1 = require("@eggjs/aop-decorator");
5
- class EggPrototypeCrossCutHook {
6
- constructor(crosscutAdviceFactory) {
7
- this.crosscutAdviceFactory = crosscutAdviceFactory;
8
- }
9
- async preCreate(ctx) {
10
- if (aop_decorator_1.CrosscutInfoUtil.isCrosscutAdvice(ctx.clazz)) {
11
- this.crosscutAdviceFactory.registerCrossAdviceClazz(ctx.clazz);
12
- }
13
- }
14
- }
15
- exports.EggPrototypeCrossCutHook = EggPrototypeCrossCutHook;
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnUHJvdG90eXBlQ3Jvc3NDdXRIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0VnZ1Byb3RvdHlwZUNyb3NzQ3V0SG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3REFBK0U7QUFHL0UsTUFBYSx3QkFBd0I7SUFHbkMsWUFBWSxxQkFBNEM7UUFDdEQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQWlDO1FBQy9DLElBQUksZ0NBQWdCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEU7SUFDSCxDQUFDO0NBQ0Y7QUFaRCw0REFZQyJ9
@@ -1,12 +0,0 @@
1
- import { LifecycleHook } from '@eggjs/tegg-lifecycle';
2
- import { CrosscutAdviceFactory } from '@eggjs/aop-decorator';
3
- import { EggProtoImplClass } from '@eggjs/core-decorator';
4
- import { EggPrototype, LoadUnit, LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
5
- export interface EggPrototypeWithClazz extends EggPrototype {
6
- clazz?: EggProtoImplClass;
7
- }
8
- export declare class LoadUnitAopHook implements LifecycleHook<LoadUnitLifecycleContext, LoadUnit> {
9
- private readonly crosscutAdviceFactory;
10
- constructor(crosscutAdviceFactory: CrosscutAdviceFactory);
11
- postCreate(_: LoadUnitLifecycleContext, loadUnit: LoadUnit): Promise<void>;
12
- }
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LoadUnitAopHook = void 0;
4
- const aop_decorator_1 = require("@eggjs/aop-decorator");
5
- const core_decorator_1 = require("@eggjs/core-decorator");
6
- const tegg_metadata_1 = require("@eggjs/tegg-metadata");
7
- class LoadUnitAopHook {
8
- constructor(crosscutAdviceFactory) {
9
- this.crosscutAdviceFactory = crosscutAdviceFactory;
10
- }
11
- async postCreate(_, loadUnit) {
12
- for (const proto of loadUnit.iterateEggPrototype()) {
13
- const protoWithClazz = proto;
14
- const clazz = protoWithClazz.clazz;
15
- if (!clazz)
16
- continue;
17
- const builder = new aop_decorator_1.AspectMetaBuilder(clazz, {
18
- crosscutAdviceFactory: this.crosscutAdviceFactory,
19
- });
20
- const aspectList = builder.build();
21
- for (const aspect of aspectList) {
22
- aop_decorator_1.AspectInfoUtil.setAspectList(aspectList, clazz);
23
- for (const advice of aspect.adviceList) {
24
- const adviceProto = core_decorator_1.PrototypeUtil.getClazzProto(advice.clazz);
25
- if (!adviceProto) {
26
- throw tegg_metadata_1.TeggError.create(`Aop Advice(${advice.clazz.name}) not found in loadUnits`, 'advice_not_found');
27
- }
28
- proto.injectObjects.push({
29
- refName: advice.name,
30
- objName: advice.name,
31
- qualifiers: [],
32
- proto: adviceProto,
33
- });
34
- }
35
- }
36
- }
37
- }
38
- }
39
- exports.LoadUnitAopHook = LoadUnitAopHook;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZFVuaXRBb3BIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0xvYWRVbml0QW9wSG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3REFBZ0c7QUFDaEcsMERBQXlFO0FBQ3pFLHdEQUFtRztBQU1uRyxNQUFhLGVBQWU7SUFHMUIsWUFBWSxxQkFBNEM7UUFDdEQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLENBQTJCLEVBQUUsUUFBa0I7UUFDOUQsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLENBQUMsbUJBQW1CLEVBQUUsRUFBRTtZQUNsRCxNQUFNLGNBQWMsR0FBRyxLQUE4QixDQUFDO1lBQ3RELE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7WUFDbkMsSUFBSSxDQUFDLEtBQUs7Z0JBQUUsU0FBUztZQUVyQixNQUFNLE9BQU8sR0FBRyxJQUFJLGlDQUFpQixDQUFDLEtBQUssRUFBRTtnQkFDM0MscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjthQUNsRCxDQUFDLENBQUM7WUFDSCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsS0FBSyxNQUFNLE1BQU0sSUFBSSxVQUFVLEVBQUU7Z0JBQy9CLDhCQUFjLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDaEQsS0FBSyxNQUFNLE1BQU0sSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO29CQUN0QyxNQUFNLFdBQVcsR0FBRyw4QkFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzlELElBQUksQ0FBQyxXQUFXLEVBQUU7d0JBQ2hCLE1BQU0seUJBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksMEJBQTBCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztxQkFDdkc7b0JBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7d0JBQ3ZCLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSTt3QkFDcEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJO3dCQUNwQixVQUFVLEVBQUUsRUFBRTt3QkFDZCxLQUFLLEVBQUUsV0FBMkI7cUJBQ25DLENBQUMsQ0FBQztpQkFDSjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0NBQ0Y7QUFuQ0QsMENBbUNDIn0=
@@ -1 +0,0 @@
1
- export {};
@@ -1,132 +0,0 @@
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
- const path_1 = __importDefault(require("path"));
7
- const mm_1 = __importDefault(require("mm"));
8
- const assert_1 = __importDefault(require("assert"));
9
- const tegg_runtime_1 = require("@eggjs/tegg-runtime");
10
- const tegg_metadata_1 = require("@eggjs/tegg-metadata");
11
- const aop_decorator_1 = require("@eggjs/aop-decorator");
12
- const test_util_1 = require("../../test-util");
13
- const Hello_1 = require("./fixtures/modules/hello_succeed/Hello");
14
- const CoreTestHelper_1 = require("../../test-util/CoreTestHelper");
15
- const EggObjectAopHook_1 = require("../src/EggObjectAopHook");
16
- const LoadUnitAopHook_1 = require("../src/LoadUnitAopHook");
17
- const EggPrototypeCrossCutHook_1 = require("../src/EggPrototypeCrossCutHook");
18
- describe('test/aop-runtime.test.ts', () => {
19
- describe('succeed call', () => {
20
- let modules;
21
- let crosscutAdviceFactory;
22
- let eggObjectAopHook;
23
- let loadUnitAopHook;
24
- let eggPrototypeCrossCutHook;
25
- beforeEach(async () => {
26
- crosscutAdviceFactory = new aop_decorator_1.CrosscutAdviceFactory();
27
- eggObjectAopHook = new EggObjectAopHook_1.EggObjectAopHook();
28
- loadUnitAopHook = new LoadUnitAopHook_1.LoadUnitAopHook(crosscutAdviceFactory);
29
- eggPrototypeCrossCutHook = new EggPrototypeCrossCutHook_1.EggPrototypeCrossCutHook(crosscutAdviceFactory);
30
- tegg_metadata_1.EggPrototypeLifecycleUtil.registerLifecycle(eggPrototypeCrossCutHook);
31
- tegg_metadata_1.LoadUnitLifecycleUtil.registerLifecycle(loadUnitAopHook);
32
- tegg_runtime_1.EggObjectLifecycleUtil.registerLifecycle(eggObjectAopHook);
33
- modules = await CoreTestHelper_1.CoreTestHelper.prepareModules([
34
- path_1.default.join(__dirname, '..'),
35
- path_1.default.join(__dirname, 'fixtures/modules/hello_succeed'),
36
- ]);
37
- });
38
- afterEach(async () => {
39
- for (const module of modules) {
40
- await tegg_metadata_1.LoadUnitFactory.destroyLoadUnit(module.loadUnit);
41
- await tegg_runtime_1.LoadUnitInstanceFactory.destroyLoadUnitInstance(module);
42
- }
43
- tegg_metadata_1.EggPrototypeLifecycleUtil.deleteLifecycle(eggPrototypeCrossCutHook);
44
- tegg_metadata_1.LoadUnitLifecycleUtil.deleteLifecycle(loadUnitAopHook);
45
- tegg_runtime_1.EggObjectLifecycleUtil.deleteLifecycle(eggObjectAopHook);
46
- });
47
- it('should work', async () => {
48
- await test_util_1.EggTestContext.mockContext(async () => {
49
- const hello = await CoreTestHelper_1.CoreTestHelper.getObject(Hello_1.Hello);
50
- const callTrace = await CoreTestHelper_1.CoreTestHelper.getObject(Hello_1.CallTrace);
51
- const msg = await hello.hello('aop');
52
- const traceMsg = callTrace.msgs;
53
- (0, assert_1.default)(msg === 'withCrossAroundResult(withPointAroundResult(hello withPointAroundParam(withCrosscutAroundParam(aop))))');
54
- assert_1.default.deepStrictEqual(traceMsg, [
55
- {
56
- className: 'CrosscutAdvice',
57
- methodName: 'beforeCall',
58
- id: 233,
59
- name: 'aop',
60
- },
61
- {
62
- className: 'PointcutAdvice',
63
- methodName: 'beforeCall',
64
- id: 233,
65
- name: 'aop',
66
- },
67
- {
68
- className: 'CrosscutAdvice',
69
- methodName: 'afterReturn',
70
- id: 233,
71
- name: 'withPointAroundParam(withCrosscutAroundParam(aop))',
72
- result: 'withCrossAroundResult(withPointAroundResult(hello withPointAroundParam(withCrosscutAroundParam(aop))))',
73
- },
74
- {
75
- className: 'PointcutAdvice',
76
- methodName: 'afterReturn',
77
- id: 233,
78
- name: 'withPointAroundParam(withCrosscutAroundParam(aop))',
79
- result: 'withCrossAroundResult(withPointAroundResult(hello withPointAroundParam(withCrosscutAroundParam(aop))))',
80
- },
81
- {
82
- className: 'CrosscutAdvice',
83
- methodName: 'afterFinally',
84
- id: 233,
85
- name: 'withPointAroundParam(withCrosscutAroundParam(aop))',
86
- },
87
- {
88
- className: 'PointcutAdvice',
89
- methodName: 'afterFinally',
90
- id: 233,
91
- name: 'withPointAroundParam(withCrosscutAroundParam(aop))',
92
- },
93
- ]);
94
- });
95
- });
96
- it('mock should work', async () => {
97
- await test_util_1.EggTestContext.mockContext(async () => {
98
- const hello = await CoreTestHelper_1.CoreTestHelper.getObject(Hello_1.Hello);
99
- let helloMocked = false;
100
- (0, mm_1.default)(Hello_1.Hello.prototype, 'hello', async () => {
101
- helloMocked = true;
102
- });
103
- await hello.hello('aop');
104
- (0, assert_1.default)(helloMocked === true);
105
- });
106
- });
107
- });
108
- describe('should failed', () => {
109
- let crosscutAdviceFactory;
110
- let eggObjectAopHook;
111
- let loadUnitAopHook;
112
- let eggPrototypeCrossCutHook;
113
- beforeEach(async () => {
114
- crosscutAdviceFactory = new aop_decorator_1.CrosscutAdviceFactory();
115
- eggObjectAopHook = new EggObjectAopHook_1.EggObjectAopHook();
116
- loadUnitAopHook = new LoadUnitAopHook_1.LoadUnitAopHook(crosscutAdviceFactory);
117
- eggPrototypeCrossCutHook = new EggPrototypeCrossCutHook_1.EggPrototypeCrossCutHook(crosscutAdviceFactory);
118
- tegg_metadata_1.EggPrototypeLifecycleUtil.registerLifecycle(eggPrototypeCrossCutHook);
119
- tegg_metadata_1.LoadUnitLifecycleUtil.registerLifecycle(loadUnitAopHook);
120
- tegg_runtime_1.EggObjectLifecycleUtil.registerLifecycle(eggObjectAopHook);
121
- });
122
- it('should throw', async () => {
123
- await assert_1.default.rejects(async () => {
124
- await CoreTestHelper_1.CoreTestHelper.prepareModules([
125
- path_1.default.join(__dirname, '..'),
126
- path_1.default.join(__dirname, 'fixtures/modules/should_throw'),
127
- ]);
128
- }, /Aop Advice\(PointcutAdvice\) not found in loadUnits/);
129
- });
130
- });
131
- });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW9wLXJ1bnRpbWUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvYW9wLXJ1bnRpbWUudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4Qiw0Q0FBb0I7QUFDcEIsb0RBQTRCO0FBQzVCLHNEQUF3RztBQUN4Ryx3REFBeUc7QUFDekcsd0RBQTZEO0FBQzdELCtDQUFpRDtBQUNqRCxrRUFBMEU7QUFDMUUsbUVBQWdFO0FBQ2hFLDhEQUEyRDtBQUMzRCw0REFBeUQ7QUFDekQsOEVBQTJFO0FBRTNFLFFBQVEsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7SUFDeEMsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDNUIsSUFBSSxPQUFnQyxDQUFDO1FBQ3JDLElBQUkscUJBQTRDLENBQUM7UUFDakQsSUFBSSxnQkFBa0MsQ0FBQztRQUN2QyxJQUFJLGVBQWdDLENBQUM7UUFDckMsSUFBSSx3QkFBa0QsQ0FBQztRQUV2RCxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDcEIscUJBQXFCLEdBQUcsSUFBSSxxQ0FBcUIsRUFBRSxDQUFDO1lBQ3BELGdCQUFnQixHQUFHLElBQUksbUNBQWdCLEVBQUUsQ0FBQztZQUMxQyxlQUFlLEdBQUcsSUFBSSxpQ0FBZSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDN0Qsd0JBQXdCLEdBQUcsSUFBSSxtREFBd0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQy9FLHlDQUF5QixDQUFDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDdEUscUNBQXFCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDekQscUNBQXNCLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUUzRCxPQUFPLEdBQUcsTUFBTSwrQkFBYyxDQUFDLGNBQWMsQ0FBQztnQkFDNUMsY0FBSSxDQUFDLElBQUksQ0FBQyxTQUFT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
@@ -1,30 +0,0 @@
1
- import { AdviceContext, IAdvice } from '@eggjs/aop-decorator';
2
- export interface CallTraceMsg {
3
- className: string;
4
- methodName: string;
5
- id: number;
6
- name: string;
7
- result?: string;
8
- }
9
- export declare class CallTrace {
10
- msgs: Array<CallTraceMsg>;
11
- addMsg(msg: CallTraceMsg): void;
12
- }
13
- export declare class PointcutAdvice implements IAdvice<Hello> {
14
- callTrace: CallTrace;
15
- beforeCall(ctx: AdviceContext<Hello>): Promise<void>;
16
- afterReturn(ctx: AdviceContext<Hello>, result: any): Promise<void>;
17
- afterFinally(ctx: AdviceContext<Hello>): Promise<void>;
18
- around(ctx: AdviceContext<Hello>, next: () => Promise<any>): Promise<any>;
19
- }
20
- export declare class Hello {
21
- id: number;
22
- hello(name: string): Promise<string>;
23
- }
24
- export declare class CrosscutAdvice implements IAdvice<Hello> {
25
- callTrace: CallTrace;
26
- beforeCall(ctx: AdviceContext<Hello>): Promise<void>;
27
- afterReturn(ctx: AdviceContext<Hello>, result: any): Promise<void>;
28
- afterFinally(ctx: AdviceContext<Hello>): Promise<void>;
29
- around(ctx: AdviceContext<Hello>, next: () => Promise<any>): Promise<any>;
30
- }
@@ -1,131 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var PointcutAdvice_1, CrosscutAdvice_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.CrosscutAdvice = exports.Hello = exports.PointcutAdvice = exports.CallTrace = void 0;
14
- const core_decorator_1 = require("@eggjs/core-decorator");
15
- const aop_decorator_1 = require("@eggjs/aop-decorator");
16
- let CallTrace = class CallTrace {
17
- constructor() {
18
- this.msgs = [];
19
- }
20
- addMsg(msg) {
21
- this.msgs.push(msg);
22
- }
23
- };
24
- CallTrace = __decorate([
25
- (0, core_decorator_1.SingletonProto)()
26
- ], CallTrace);
27
- exports.CallTrace = CallTrace;
28
- let PointcutAdvice = PointcutAdvice_1 = class PointcutAdvice {
29
- async beforeCall(ctx) {
30
- this.callTrace.addMsg({
31
- className: PointcutAdvice_1.name,
32
- methodName: 'beforeCall',
33
- id: ctx.that.id,
34
- name: ctx.args[0],
35
- });
36
- }
37
- async afterReturn(ctx, result) {
38
- this.callTrace.addMsg({
39
- className: PointcutAdvice_1.name,
40
- methodName: 'afterReturn',
41
- id: ctx.that.id,
42
- name: ctx.args[0],
43
- result,
44
- });
45
- }
46
- async afterFinally(ctx) {
47
- this.callTrace.addMsg({
48
- className: PointcutAdvice_1.name,
49
- methodName: 'afterFinally',
50
- id: ctx.that.id,
51
- name: ctx.args[0],
52
- });
53
- }
54
- async around(ctx, next) {
55
- ctx.args[0] = `withPointAroundParam(${ctx.args[0]})`;
56
- const result = await next();
57
- return `withPointAroundResult(${result})`;
58
- }
59
- };
60
- __decorate([
61
- (0, core_decorator_1.Inject)(),
62
- __metadata("design:type", CallTrace)
63
- ], PointcutAdvice.prototype, "callTrace", void 0);
64
- PointcutAdvice = PointcutAdvice_1 = __decorate([
65
- (0, aop_decorator_1.Advice)()
66
- ], PointcutAdvice);
67
- exports.PointcutAdvice = PointcutAdvice;
68
- let Hello = class Hello {
69
- constructor() {
70
- this.id = 233;
71
- }
72
- async hello(name) {
73
- return `hello ${name}`;
74
- }
75
- };
76
- __decorate([
77
- (0, aop_decorator_1.Pointcut)(PointcutAdvice),
78
- __metadata("design:type", Function),
79
- __metadata("design:paramtypes", [String]),
80
- __metadata("design:returntype", Promise)
81
- ], Hello.prototype, "hello", null);
82
- Hello = __decorate([
83
- (0, core_decorator_1.ContextProto)()
84
- ], Hello);
85
- exports.Hello = Hello;
86
- let CrosscutAdvice = CrosscutAdvice_1 = class CrosscutAdvice {
87
- async beforeCall(ctx) {
88
- this.callTrace.addMsg({
89
- className: CrosscutAdvice_1.name,
90
- methodName: 'beforeCall',
91
- id: ctx.that.id,
92
- name: ctx.args[0],
93
- });
94
- }
95
- async afterReturn(ctx, result) {
96
- this.callTrace.addMsg({
97
- className: CrosscutAdvice_1.name,
98
- methodName: 'afterReturn',
99
- id: ctx.that.id,
100
- name: ctx.args[0],
101
- result,
102
- });
103
- }
104
- async afterFinally(ctx) {
105
- this.callTrace.addMsg({
106
- className: CrosscutAdvice_1.name,
107
- methodName: 'afterFinally',
108
- id: ctx.that.id,
109
- name: ctx.args[0],
110
- });
111
- }
112
- async around(ctx, next) {
113
- ctx.args[0] = `withCrosscutAroundParam(${ctx.args[0]})`;
114
- const result = await next();
115
- return `withCrossAroundResult(${result})`;
116
- }
117
- };
118
- __decorate([
119
- (0, core_decorator_1.Inject)(),
120
- __metadata("design:type", CallTrace)
121
- ], CrosscutAdvice.prototype, "callTrace", void 0);
122
- CrosscutAdvice = CrosscutAdvice_1 = __decorate([
123
- (0, aop_decorator_1.Crosscut)({
124
- type: aop_decorator_1.PointcutType.CLASS,
125
- clazz: Hello,
126
- methodName: 'hello',
127
- }),
128
- (0, aop_decorator_1.Advice)()
129
- ], CrosscutAdvice);
130
- exports.CrosscutAdvice = CrosscutAdvice;
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVsbG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L2ZpeHR1cmVzL21vZHVsZXMvaGVsbG9fc3VjY2VlZC9IZWxsby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsMERBQTZFO0FBQzdFLHdEQUF3RztBQVdqRyxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFBZjtRQUNMLFNBQUksR0FBd0IsRUFBRSxDQUFDO0lBS2pDLENBQUM7SUFIQyxNQUFNLENBQUMsR0FBaUI7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztDQUNGLENBQUE7QUFOWSxTQUFTO0lBRHJCLElBQUEsK0JBQWMsR0FBRTtHQUNKLFNBQVMsQ0FNckI7QUFOWSw4QkFBUztBQVNmLElBQU0sY0FBYyxzQkFBcEIsTUFBTSxjQUFjO0lBSXpCLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBeUI7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDcEIsU0FBUyxFQUFFLGdCQUFjLENBQUMsSUFBSTtZQUM5QixVQUFVLEVBQUUsWUFBWTtZQUN4QixFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2YsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQXlCLEVBQUUsTUFBVztRQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUNwQixTQUFTLEVBQUUsZ0JBQWMsQ0FBQyxJQUFJO1lBQzlCLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDZixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDakIsTUFB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
@@ -1,4 +0,0 @@
1
- export declare class Hello {
2
- id: number;
3
- hello(name: string): Promise<string>;
4
- }
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Hello = void 0;
13
- const core_decorator_1 = require("@eggjs/core-decorator");
14
- const aop_decorator_1 = require("@eggjs/aop-decorator");
15
- let PointcutAdvice = class PointcutAdvice {
16
- async beforeCall(ctx) {
17
- console.info(ctx);
18
- }
19
- };
20
- PointcutAdvice = __decorate([
21
- (0, aop_decorator_1.Advice)()
22
- ], PointcutAdvice);
23
- let Hello = class Hello {
24
- constructor() {
25
- this.id = 233;
26
- }
27
- async hello(name) {
28
- return `hello ${name}`;
29
- }
30
- };
31
- __decorate([
32
- (0, aop_decorator_1.Pointcut)(PointcutAdvice),
33
- __metadata("design:type", Function),
34
- __metadata("design:paramtypes", [String]),
35
- __metadata("design:returntype", Promise)
36
- ], Hello.prototype, "hello", null);
37
- Hello = __decorate([
38
- (0, core_decorator_1.ContextProto)()
39
- ], Hello);
40
- exports.Hello = Hello;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVsbG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0L2ZpeHR1cmVzL21vZHVsZXMvc2hvdWxkX3Rocm93L0hlbGxvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDBEQUFxRDtBQUNyRCx3REFBZ0Y7QUFHaEYsSUFBTSxjQUFjLEdBQXBCLE1BQU0sY0FBYztJQUNsQixLQUFLLENBQUMsVUFBVSxDQUFDLEdBQXlCO1FBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQztDQUNGLENBQUE7QUFKSyxjQUFjO0lBRG5CLElBQUEsc0JBQU0sR0FBRTtHQUNILGNBQWMsQ0FJbkI7QUFHTSxJQUFNLEtBQUssR0FBWCxNQUFNLEtBQUs7SUFBWDtRQUNMLE9BQUUsR0FBRyxHQUFHLENBQUM7SUFNWCxDQUFDO0lBSE8sQUFBTixLQUFLLENBQUMsS0FBSyxDQUFDLElBQVk7UUFDdEIsT0FBTyxTQUFTLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7Q0FDRixDQUFBO0FBSE87SUFETCxJQUFBLHdCQUFRLEVBQUMsY0FBYyxDQUFDOzs7O2tDQUd4QjtBQU5VLEtBQUs7SUFEakIsSUFBQSw2QkFBWSxHQUFFO0dBQ0YsS0FBSyxDQU9qQjtBQVBZLHNCQUFLIn0=
@@ -1,14 +0,0 @@
1
- /// <reference types="node" />
2
- import { EggContext, LoadUnitInstance } from '@eggjs/tegg-runtime';
3
- import { EggProtoImplClass } from '@eggjs/core-decorator';
4
- import { AsyncLocalStorage } from 'async_hooks';
5
- export declare class EggContextStorage {
6
- static storage: AsyncLocalStorage<EggContext>;
7
- static register(): void;
8
- }
9
- export declare class CoreTestHelper {
10
- static contextStorage: AsyncLocalStorage<unknown>;
11
- static getLoadUnitInstance(moduleDir: string): Promise<LoadUnitInstance>;
12
- static prepareModules(moduleDirs: string[]): Promise<Array<LoadUnitInstance>>;
13
- static getObject<T>(clazz: EggProtoImplClass<T>): Promise<T>;
14
- }
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CoreTestHelper = exports.EggContextStorage = void 0;
4
- const tegg_runtime_1 = require("@eggjs/tegg-runtime");
5
- const tegg_metadata_1 = require("@eggjs/tegg-metadata");
6
- const tegg_loader_1 = require("@eggjs/tegg-loader");
7
- const core_decorator_1 = require("@eggjs/core-decorator");
8
- const async_hooks_1 = require("async_hooks");
9
- class EggContextStorage {
10
- static register() {
11
- tegg_runtime_1.ContextHandler.getContextCallback = () => {
12
- return EggContextStorage.storage.getStore();
13
- };
14
- tegg_runtime_1.ContextHandler.runInContextCallback = (context, fn) => {
15
- return EggContextStorage.storage.run(context, fn);
16
- };
17
- }
18
- }
19
- exports.EggContextStorage = EggContextStorage;
20
- EggContextStorage.storage = new async_hooks_1.AsyncLocalStorage();
21
- class CoreTestHelper {
22
- static async getLoadUnitInstance(moduleDir) {
23
- const loader = tegg_loader_1.LoaderFactory.createLoader(moduleDir, tegg_metadata_1.EggLoadUnitType.MODULE);
24
- const loadUnit = await tegg_metadata_1.LoadUnitFactory.createLoadUnit(moduleDir, tegg_metadata_1.EggLoadUnitType.MODULE, loader);
25
- return await tegg_runtime_1.LoadUnitInstanceFactory.createLoadUnitInstance(loadUnit);
26
- }
27
- static async prepareModules(moduleDirs) {
28
- EggContextStorage.register();
29
- const instances = [];
30
- for (const moduleDir of moduleDirs) {
31
- instances.push(await CoreTestHelper.getLoadUnitInstance(moduleDir));
32
- }
33
- return instances;
34
- }
35
- static async getObject(clazz) {
36
- const proto = core_decorator_1.PrototypeUtil.getClazzProto(clazz);
37
- const eggObj = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObject(proto, proto.name);
38
- return eggObj.obj;
39
- }
40
- }
41
- exports.CoreTestHelper = CoreTestHelper;
42
- CoreTestHelper.contextStorage = new async_hooks_1.AsyncLocalStorage();
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29yZVRlc3RIZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0LXV0aWwvQ29yZVRlc3RIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBTTZCO0FBQzdCLHdEQUFzRjtBQUN0RixvREFBbUQ7QUFDbkQsMERBQXlFO0FBQ3pFLDZDQUFnRDtBQUVoRCxNQUFhLGlCQUFpQjtJQUc1QixNQUFNLENBQUMsUUFBUTtRQUNiLDZCQUFjLENBQUMsa0JBQWtCLEdBQUcsR0FBRyxFQUFFO1lBQ3ZDLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlDLENBQUMsQ0FBQztRQUNGLDZCQUFjLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDcEQsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUM7SUFDSixDQUFDOztBQVZILDhDQVdDO0FBVlEseUJBQU8sR0FBRyxJQUFJLCtCQUFpQixFQUFjLENBQUM7QUFZdkQsTUFBYSxjQUFjO0lBR3pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsU0FBaUI7UUFDaEQsTUFBTSxNQUFNLEdBQUcsMkJBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLCtCQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0UsTUFBTSxRQUFRLEdBQUcsTUFBTSwrQkFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsK0JBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakcsT0FBTyxNQUFNLHNDQUF1QixDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxVQUFvQjtRQUM5QyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixNQUFNLFNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBQzlDLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFO1lBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxjQUFjLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUNyRTtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBSSxLQUEyQjtRQUNuRCxNQUFNLEtBQUssR0FBRyw4QkFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFZLENBQWlCLENBQUM7UUFDeEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxrQ0FBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sTUFBTSxDQUFDLEdBQW1CLENBQUM7SUFDcEMsQ0FBQzs7QUFwQkgsd0NBcUJDO0FBcEJRLDZCQUFjLEdBQUcsSUFBSSwrQkFBaUIsRUFBRSxDQUFDIn0=