@eggjs/aop-decorator 4.0.0-beta.7 → 4.0.0-beta.9
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/AspectMetaBuilder.d.ts +12 -16
- package/dist/AspectMetaBuilder.js +54 -48
- package/dist/CrosscutAdviceFactory.d.ts +5 -9
- package/dist/CrosscutAdviceFactory.js +22 -23
- package/dist/decorator/Advice.d.ts +2 -6
- package/dist/decorator/Advice.js +17 -21
- package/dist/decorator/Crosscut.d.ts +2 -6
- package/dist/decorator/Crosscut.js +43 -41
- package/dist/decorator/Pointcut.d.ts +2 -6
- package/dist/decorator/Pointcut.js +17 -21
- package/dist/decorator/index.d.ts +3 -0
- package/dist/decorator/index.js +4 -5
- package/dist/index.d.ts +6 -13
- package/dist/index.js +7 -18
- package/dist/model/Aspect.d.ts +14 -18
- package/dist/model/Aspect.js +38 -41
- package/dist/model/PointcutInfo.d.ts +19 -22
- package/dist/model/PointcutInfo.js +40 -40
- package/dist/model/index.d.ts +2 -0
- package/dist/model/index.js +3 -4
- package/dist/util/AdviceInfoUtil.d.ts +5 -9
- package/dist/util/AdviceInfoUtil.js +11 -15
- package/dist/util/AspectInfoUtil.d.ts +5 -9
- package/dist/util/AspectInfoUtil.js +12 -16
- package/dist/util/CrosscutInfoUtil.d.ts +6 -10
- package/dist/util/CrosscutInfoUtil.js +18 -21
- package/dist/util/PointcutAdviceInfoUtil.d.ts +4 -8
- package/dist/util/PointcutAdviceInfoUtil.js +17 -18
- package/dist/util/index.d.ts +4 -0
- package/dist/util/index.js +5 -6
- package/package.json +5 -5
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CrosscutAdviceFactory } from
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
static getAllMethods(clazz: EggProtoImplClass): PropertyKey[];
|
|
14
|
-
private doBuildMethodAspect;
|
|
1
|
+
import type { EggProtoImplClass } from '@eggjs/tegg-types';
|
|
2
|
+
import { CrosscutAdviceFactory } from './CrosscutAdviceFactory.ts';
|
|
3
|
+
import { Aspect } from './model/index.ts';
|
|
4
|
+
export declare class AspectMetaBuilder {
|
|
5
|
+
private readonly clazz;
|
|
6
|
+
private readonly crosscutAdviceFactory;
|
|
7
|
+
constructor(clazz: EggProtoImplClass, options: {
|
|
8
|
+
crosscutAdviceFactory: CrosscutAdviceFactory;
|
|
9
|
+
});
|
|
10
|
+
build(): Array<Aspect>;
|
|
11
|
+
static getAllMethods(clazz: EggProtoImplClass): PropertyKey[];
|
|
12
|
+
private doBuildMethodAspect;
|
|
15
13
|
}
|
|
16
|
-
//#endregion
|
|
17
|
-
export { AspectMetaBuilder };
|
|
@@ -1,48 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./model/index.js";
|
|
3
|
-
import { PointcutAdviceInfoUtil } from "./util/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
1
|
+
import { CrosscutAdviceFactory } from "./CrosscutAdviceFactory.js";
|
|
2
|
+
import { Aspect, AspectBuilder } from "./model/index.js";
|
|
3
|
+
import { PointcutAdviceInfoUtil } from "./util/index.js";
|
|
4
|
+
export class AspectMetaBuilder {
|
|
5
|
+
clazz;
|
|
6
|
+
crosscutAdviceFactory;
|
|
7
|
+
constructor(clazz, options) {
|
|
8
|
+
this.clazz = clazz;
|
|
9
|
+
this.crosscutAdviceFactory = options.crosscutAdviceFactory;
|
|
10
|
+
}
|
|
11
|
+
build() {
|
|
12
|
+
const aspectList = [];
|
|
13
|
+
const methods = AspectMetaBuilder.getAllMethods(this.clazz);
|
|
14
|
+
for (const method of methods) {
|
|
15
|
+
const aspect = this.doBuildMethodAspect(method);
|
|
16
|
+
if (aspect) {
|
|
17
|
+
aspectList.push(aspect);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return aspectList;
|
|
21
|
+
}
|
|
22
|
+
static getAllMethods(clazz) {
|
|
23
|
+
const methodSet = new Set();
|
|
24
|
+
function getMethods(obj) {
|
|
25
|
+
if (obj) {
|
|
26
|
+
const propDescs = Object.getOwnPropertyDescriptors(obj);
|
|
27
|
+
for (const [name, desc] of Object.entries(propDescs)) {
|
|
28
|
+
if (desc.value instanceof Function) {
|
|
29
|
+
methodSet.add(name);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
getMethods(Object.getPrototypeOf(obj));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
getMethods(clazz.prototype);
|
|
36
|
+
return Array.from(methodSet);
|
|
37
|
+
}
|
|
38
|
+
doBuildMethodAspect(method) {
|
|
39
|
+
const crosscutAdviceList = this.crosscutAdviceFactory.getAdvice(this.clazz, method);
|
|
40
|
+
// decorator execute in reverse order
|
|
41
|
+
const pointcutAdviceList = PointcutAdviceInfoUtil.getPointcutAdviceInfoList(this.clazz, method);
|
|
42
|
+
if (!crosscutAdviceList.length && !pointcutAdviceList.length)
|
|
43
|
+
return;
|
|
44
|
+
const aspectBuilder = new AspectBuilder(this.clazz, method);
|
|
45
|
+
for (const advice of crosscutAdviceList) {
|
|
46
|
+
aspectBuilder.addAdvice(advice);
|
|
47
|
+
}
|
|
48
|
+
for (const advice of pointcutAdviceList) {
|
|
49
|
+
aspectBuilder.addAdvice(advice);
|
|
50
|
+
}
|
|
51
|
+
return aspectBuilder.build();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXNwZWN0TWV0YUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQXNwZWN0TWV0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6RCxNQUFNLE9BQU8saUJBQWlCO0lBQ1gsS0FBSyxDQUFvQjtJQUN6QixxQkFBcUIsQ0FBd0I7SUFFOUQsWUFBWSxLQUF3QixFQUFFLE9BRXJDO1FBQ0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztJQUM3RCxDQUFDO0lBRUQsS0FBSztRQUNILE1BQU0sVUFBVSxHQUFrQixFQUFFLENBQUM7UUFDckMsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUF3QjtRQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQ3BDLFNBQVMsVUFBVSxDQUFDLEdBQVE7WUFDMUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hELEtBQUssTUFBTSxDQUFFLElBQUksRUFBRSxJQUFJLENBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7b0JBQ3ZELElBQUksSUFBSSxDQUFDLEtBQUssWUFBWSxRQUFRLEVBQUUsQ0FBQzt3QkFDbkMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdEIsQ0FBQztnQkFDSCxDQUFDO2dCQUNELFVBQVUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUM7UUFFRCxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsTUFBbUI7UUFDN0MsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDcEYscUNBQXFDO1FBQ3JDLE1BQU0sa0JBQWtCLEdBQUcsc0JBQXNCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDckUsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1RCxLQUFLLE1BQU0sTUFBTSxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDeEMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsS0FBSyxNQUFNLE1BQU0sSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3hDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9CLENBQUM7Q0FDRiJ9
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
registerCrossAdviceClazz(clazz: EggProtoImplClass<IAdvice>): void;
|
|
7
|
-
getAdvice(clazz: EggProtoImplClass, method: PropertyKey): Array<AdviceInfo>;
|
|
1
|
+
import type { EggProtoImplClass, IAdvice, AdviceInfo } from '@eggjs/tegg-types';
|
|
2
|
+
export declare class CrosscutAdviceFactory {
|
|
3
|
+
private readonly crosscutAdviceClazzList;
|
|
4
|
+
registerCrossAdviceClazz(clazz: EggProtoImplClass<IAdvice>): void;
|
|
5
|
+
getAdvice(clazz: EggProtoImplClass, method: PropertyKey): Array<AdviceInfo>;
|
|
8
6
|
}
|
|
9
|
-
//#endregion
|
|
10
|
-
export { CrosscutAdviceFactory };
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "./util/index.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
//#
|
|
23
|
-
export { CrosscutAdviceFactory };
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { CrosscutInfoUtil } from "./util/index.js";
|
|
3
|
+
export class CrosscutAdviceFactory {
|
|
4
|
+
crosscutAdviceClazzList = [];
|
|
5
|
+
registerCrossAdviceClazz(clazz) {
|
|
6
|
+
assert(CrosscutInfoUtil.isCrosscutAdvice(clazz), `clazz ${clazz.name} is not crosscut advice`);
|
|
7
|
+
this.crosscutAdviceClazzList.push(clazz);
|
|
8
|
+
}
|
|
9
|
+
getAdvice(clazz, method) {
|
|
10
|
+
const result = [];
|
|
11
|
+
for (const crosscutAdviceClazz of this.crosscutAdviceClazzList) {
|
|
12
|
+
const crosscutInfoList = CrosscutInfoUtil.getCrosscutInfoList(crosscutAdviceClazz);
|
|
13
|
+
for (const crosscutInfo of crosscutInfoList) {
|
|
14
|
+
if (crosscutInfo.pointcutInfo.match(clazz, method)) {
|
|
15
|
+
result.push(crosscutInfo.adviceInfo);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3Jvc3NjdXRBZHZpY2VGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Nyb3NzY3V0QWR2aWNlRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFHakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbkQsTUFBTSxPQUFPLHFCQUFxQjtJQUNmLHVCQUF1QixHQUFzQyxFQUFFLENBQUM7SUFFakYsd0JBQXdCLENBQUMsS0FBaUM7UUFDeEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsS0FBSyxDQUFDLElBQUkseUJBQXlCLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBd0IsRUFBRSxNQUFtQjtRQUNyRCxNQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDO1FBQ3JDLEtBQUssTUFBTSxtQkFBbUIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUMvRCxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDbkYsS0FBSyxNQUFNLFlBQVksSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIn0=
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import { EggProtoImplClass, IAdvice, PrototypeParams } from
|
|
2
|
-
|
|
3
|
-
//#region src/decorator/Advice.d.ts
|
|
4
|
-
declare function Advice(param?: PrototypeParams): (constructor: EggProtoImplClass<IAdvice>) => void;
|
|
5
|
-
//#endregion
|
|
6
|
-
export { Advice };
|
|
1
|
+
import type { EggProtoImplClass, IAdvice, PrototypeParams } from '@eggjs/tegg-types';
|
|
2
|
+
export declare function Advice(param?: PrototypeParams): (constructor: EggProtoImplClass<IAdvice>) => void;
|
package/dist/decorator/Advice.js
CHANGED
|
@@ -1,24 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { AccessLevel, ObjectInitType } from "@eggjs/tegg-types";
|
|
6
|
-
|
|
7
|
-
//#region src/decorator/Advice.ts
|
|
1
|
+
import { Prototype, PrototypeUtil } from '@eggjs/core-decorator';
|
|
2
|
+
import { StackUtil } from '@eggjs/tegg-common-util';
|
|
3
|
+
import { AccessLevel, ObjectInitType } from '@eggjs/tegg-types';
|
|
4
|
+
import { AdviceInfoUtil } from "../util/index.js";
|
|
8
5
|
const defaultAdviceParam = {
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
accessLevel: AccessLevel.PUBLIC,
|
|
7
|
+
initType: ObjectInitType.SINGLETON,
|
|
11
8
|
};
|
|
12
|
-
function Advice(param) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
9
|
+
export function Advice(param) {
|
|
10
|
+
return function (constructor) {
|
|
11
|
+
AdviceInfoUtil.setIsAdvice(true, constructor);
|
|
12
|
+
const func = Prototype({
|
|
13
|
+
...defaultAdviceParam,
|
|
14
|
+
...param,
|
|
15
|
+
});
|
|
16
|
+
func(constructor);
|
|
17
|
+
PrototypeUtil.setFilePath(constructor, StackUtil.getCalleeFromStack(false, 5));
|
|
18
|
+
};
|
|
21
19
|
}
|
|
22
|
-
|
|
23
|
-
//#endregion
|
|
24
|
-
export { Advice };
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWR2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY29yYXRvci9BZHZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU07SUFDL0IsUUFBUSxFQUFFLGNBQWMsQ0FBQyxTQUFTO0NBQ25DLENBQUM7QUFFRixNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQXVCO0lBQzVDLE9BQU8sVUFBUyxXQUF1QztRQUNyRCxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5QyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUM7WUFDckIsR0FBRyxrQkFBa0I7WUFDckIsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xCLGFBQWEsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
//#region src/decorator/Crosscut.d.ts
|
|
4
|
-
declare function Crosscut(param: CrosscutParam, options?: CrosscutOptions): (constructor: EggProtoImplClass<IAdvice>) => void;
|
|
5
|
-
//#endregion
|
|
6
|
-
export { Crosscut };
|
|
1
|
+
import type { EggProtoImplClass, IAdvice, CrosscutParam, CrosscutOptions } from '@eggjs/tegg-types';
|
|
2
|
+
export declare function Crosscut(param: CrosscutParam, options?: CrosscutOptions): (constructor: EggProtoImplClass<IAdvice>) => void;
|
|
@@ -1,42 +1,44 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
1
|
+
import { PointcutType } from '@eggjs/tegg-types';
|
|
2
|
+
import { CrosscutInfoUtil } from "../util/index.js";
|
|
3
|
+
import { ClassPointInfo, CustomPointInfo, NamePointInfo } from "../model/index.js";
|
|
4
|
+
const defaultCrossOptions = {
|
|
5
|
+
order: 100,
|
|
6
|
+
};
|
|
7
|
+
export function Crosscut(param, options) {
|
|
8
|
+
return function (constructor) {
|
|
9
|
+
let crosscutInfo;
|
|
10
|
+
if (param.type === PointcutType.CLASS) {
|
|
11
|
+
crosscutInfo = {
|
|
12
|
+
pointcutInfo: new ClassPointInfo(param.clazz, param.methodName),
|
|
13
|
+
adviceInfo: {
|
|
14
|
+
clazz: constructor,
|
|
15
|
+
order: options?.order ?? defaultCrossOptions.order,
|
|
16
|
+
adviceParams: options?.adviceParams,
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
else if (param.type === PointcutType.NAME) {
|
|
21
|
+
crosscutInfo = {
|
|
22
|
+
pointcutInfo: new NamePointInfo(param.className, param.methodName),
|
|
23
|
+
adviceInfo: {
|
|
24
|
+
clazz: constructor,
|
|
25
|
+
order: options?.order ?? defaultCrossOptions.order,
|
|
26
|
+
adviceParams: options?.adviceParams,
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
crosscutInfo = {
|
|
32
|
+
pointcutInfo: new CustomPointInfo(param.callback),
|
|
33
|
+
adviceInfo: {
|
|
34
|
+
clazz: constructor,
|
|
35
|
+
order: options?.order ?? defaultCrossOptions.order,
|
|
36
|
+
adviceParams: options?.adviceParams,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
CrosscutInfoUtil.setIsCrosscutAdvice(true, constructor);
|
|
41
|
+
CrosscutInfoUtil.addCrosscutInfo(crosscutInfo, constructor);
|
|
42
|
+
};
|
|
39
43
|
}
|
|
40
|
-
|
|
41
|
-
//#endregion
|
|
42
|
-
export { Crosscut };
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3Jvc3NjdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL0Nyb3NzY3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRixNQUFNLG1CQUFtQixHQUFHO0lBQzFCLEtBQUssRUFBRSxHQUFHO0NBQ1gsQ0FBQztBQUVGLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBb0IsRUFBRSxPQUF5QjtJQUN0RSxPQUFPLFVBQVMsV0FBdUM7UUFDckQsSUFBSSxZQUEwQixDQUFDO1FBQy9CLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEMsWUFBWSxHQUFHO2dCQUNiLFlBQVksRUFBRSxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUM7Z0JBQy9ELFVBQVUsRUFBRTtvQkFDVixLQUFLLEVBQUUsV0FBVztvQkFDbEIsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLElBQUksbUJBQW1CLENBQUMsS0FBSztvQkFDbEQsWUFBWSxFQUFFLE9BQU8sRUFBRSxZQUFZO2lCQUNwQzthQUNGLENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxZQUFZLEdBQUc7Z0JBQ2IsWUFBWSxFQUFFLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQztnQkFDbEUsVUFBVSxFQUFFO29CQUNWLEtBQUssRUFBRSxXQUFXO29CQUNsQixLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssSUFBSSxtQkFBbUIsQ0FBQyxLQUFLO29CQUNsRCxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVk7aUJBQ3BDO2FBQ0YsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxHQUFHO2dCQUNiLFlBQVksRUFBRSxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO2dCQUNqRCxVQUFVLEVBQUU7b0JBQ1YsS0FBSyxFQUFFLFdBQVc7b0JBQ2xCLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxJQUFJLG1CQUFtQixDQUFDLEtBQUs7b0JBQ2xELFlBQVksRUFBRSxPQUFPLEVBQUUsWUFBWTtpQkFDcEM7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUNELGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RCxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import { EggProtoImplClass, IAdvice, PointcutOptions } from
|
|
2
|
-
|
|
3
|
-
//#region src/decorator/Pointcut.d.ts
|
|
4
|
-
declare function Pointcut<T extends object, K = any>(adviceClazz: EggProtoImplClass<IAdvice<T, K>>, options?: PointcutOptions<K>): (target: any, propertyKey: PropertyKey) => void;
|
|
5
|
-
//#endregion
|
|
6
|
-
export { Pointcut };
|
|
1
|
+
import type { EggProtoImplClass, IAdvice, PointcutOptions } from '@eggjs/tegg-types';
|
|
2
|
+
export declare function Pointcut<T extends object, K = any>(adviceClazz: EggProtoImplClass<IAdvice<T, K>>, options?: PointcutOptions<K>): (target: any, propertyKey: PropertyKey) => void;
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { PointcutAdviceInfoUtil } from "../util/
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}, targetClazz, methodName);
|
|
18
|
-
};
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { PointcutAdviceInfoUtil, AdviceInfoUtil } from "../util/index.js";
|
|
3
|
+
const defaultPointcutOptions = {
|
|
4
|
+
order: 1000,
|
|
5
|
+
};
|
|
6
|
+
export function Pointcut(adviceClazz, options) {
|
|
7
|
+
return function (target, propertyKey) {
|
|
8
|
+
assert(AdviceInfoUtil.isAdvice(adviceClazz), `class ${adviceClazz} has no @Advice decorator`);
|
|
9
|
+
const targetClazz = target.constructor;
|
|
10
|
+
const methodName = propertyKey;
|
|
11
|
+
PointcutAdviceInfoUtil.addPointcutAdviceInfo({
|
|
12
|
+
clazz: adviceClazz,
|
|
13
|
+
order: options?.order ?? defaultPointcutOptions.order,
|
|
14
|
+
adviceParams: options?.adviceParams,
|
|
15
|
+
}, targetClazz, methodName);
|
|
16
|
+
};
|
|
19
17
|
}
|
|
20
|
-
|
|
21
|
-
//#endregion
|
|
22
|
-
export { Pointcut };
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9pbnRjdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL1BvaW50Y3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUdqQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUUsTUFBTSxzQkFBc0IsR0FBRztJQUM3QixLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLFVBQVUsUUFBUSxDQUE0QixXQUE2QyxFQUFFLE9BQTRCO0lBQzdILE9BQU8sVUFBUyxNQUFXLEVBQUUsV0FBd0I7UUFDbkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsU0FBUyxXQUFXLDJCQUEyQixDQUFDLENBQUM7UUFDOUYsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQWdDLENBQUM7UUFDNUQsTUFBTSxVQUFVLEdBQUcsV0FBcUIsQ0FBQztRQUN6QyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQztZQUMzQyxLQUFLLEVBQUUsV0FBVztZQUNsQixLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssSUFBSSxzQkFBc0IsQ0FBQyxLQUFLO1lBQ3JELFlBQVksRUFBRSxPQUFPLEVBQUUsWUFBWTtTQUNwQyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM5QixDQUFDLENBQUM7QUFDSixDQUFDIn0=
|
package/dist/decorator/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export { };
|
|
1
|
+
export * from "./Advice.js";
|
|
2
|
+
export * from "./Crosscut.js";
|
|
3
|
+
export * from "./Pointcut.js";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDIn0=
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { AspectInfoUtil } from "./util/AspectInfoUtil.js";
|
|
8
|
-
import { CrosscutInfoUtil } from "./util/CrosscutInfoUtil.js";
|
|
9
|
-
import { PointcutAdviceInfoUtil } from "./util/PointcutAdviceInfoUtil.js";
|
|
10
|
-
import { CrosscutAdviceFactory } from "./CrosscutAdviceFactory.js";
|
|
11
|
-
import { AspectMetaBuilder } from "./AspectMetaBuilder.js";
|
|
12
|
-
export * from "@eggjs/tegg-types/aop";
|
|
13
|
-
export { Advice, AdviceInfoUtil, Aspect, AspectBuilder, AspectInfoUtil, AspectMetaBuilder, ClassPointInfo, Crosscut, CrosscutAdviceFactory, CrosscutInfoUtil, CustomPointInfo, IS_ADVICE, NamePointInfo, Pointcut, PointcutAdviceInfoUtil };
|
|
1
|
+
export * from '@eggjs/tegg-types/aop';
|
|
2
|
+
export * from './decorator/index.ts';
|
|
3
|
+
export * from './model/index.ts';
|
|
4
|
+
export * from './util/index.ts';
|
|
5
|
+
export * from './AspectMetaBuilder.ts';
|
|
6
|
+
export * from './CrosscutAdviceFactory.ts';
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import "./util/index.js";
|
|
9
|
-
import { Advice } from "./decorator/Advice.js";
|
|
10
|
-
import { Crosscut } from "./decorator/Crosscut.js";
|
|
11
|
-
import { Pointcut } from "./decorator/Pointcut.js";
|
|
12
|
-
import "./decorator/index.js";
|
|
13
|
-
import { CrosscutAdviceFactory } from "./CrosscutAdviceFactory.js";
|
|
14
|
-
import { AspectMetaBuilder } from "./AspectMetaBuilder.js";
|
|
15
|
-
|
|
16
|
-
export * from "@eggjs/tegg-types/aop"
|
|
17
|
-
|
|
18
|
-
export { Advice, AdviceInfoUtil, Aspect, AspectBuilder, AspectInfoUtil, AspectMetaBuilder, ClassPointInfo, Crosscut, CrosscutAdviceFactory, CrosscutInfoUtil, CustomPointInfo, IS_ADVICE, NamePointInfo, Pointcut, PointcutAdviceInfoUtil };
|
|
1
|
+
export * from '@eggjs/tegg-types/aop';
|
|
2
|
+
export * from "./decorator/index.js";
|
|
3
|
+
export * from "./model/index.js";
|
|
4
|
+
export * from "./util/index.js";
|
|
5
|
+
export * from "./AspectMetaBuilder.js";
|
|
6
|
+
export * from "./CrosscutAdviceFactory.js";
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsNEJBQTRCLENBQUMifQ==
|
package/dist/model/Aspect.d.ts
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
|
-
import { AdviceInfo, AspectAdvice, EggProtoImplClass } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
readonly adviceList: readonly AspectAdvice[];
|
|
8
|
-
constructor(clazz: EggProtoImplClass, method: PropertyKey, adviceList: readonly AspectAdvice[]);
|
|
1
|
+
import type { AdviceInfo, AspectAdvice, EggProtoImplClass } from '@eggjs/tegg-types';
|
|
2
|
+
export declare class Aspect {
|
|
3
|
+
readonly clazz: EggProtoImplClass;
|
|
4
|
+
readonly method: PropertyKey;
|
|
5
|
+
readonly adviceList: readonly AspectAdvice[];
|
|
6
|
+
constructor(clazz: EggProtoImplClass, method: PropertyKey, adviceList: readonly AspectAdvice[]);
|
|
9
7
|
}
|
|
10
|
-
declare class AspectBuilder {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
export declare class AspectBuilder {
|
|
9
|
+
readonly clazz: EggProtoImplClass;
|
|
10
|
+
readonly method: PropertyKey;
|
|
11
|
+
private readonly adviceList;
|
|
12
|
+
constructor(clazz: EggProtoImplClass, method: PropertyKey);
|
|
13
|
+
addAdvice(adviceInfo: AdviceInfo): void;
|
|
14
|
+
build(): Aspect;
|
|
15
|
+
private adviceName;
|
|
18
16
|
}
|
|
19
|
-
//#endregion
|
|
20
|
-
export { Aspect, AspectBuilder };
|
package/dist/model/Aspect.js
CHANGED
|
@@ -1,41 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
//#endregion
|
|
41
|
-
export { Aspect, AspectBuilder };
|
|
1
|
+
export class Aspect {
|
|
2
|
+
clazz;
|
|
3
|
+
method;
|
|
4
|
+
adviceList;
|
|
5
|
+
constructor(clazz, method, adviceList) {
|
|
6
|
+
this.clazz = clazz;
|
|
7
|
+
this.method = method;
|
|
8
|
+
this.adviceList = adviceList;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class AspectBuilder {
|
|
12
|
+
clazz;
|
|
13
|
+
method;
|
|
14
|
+
adviceList;
|
|
15
|
+
constructor(clazz, method) {
|
|
16
|
+
this.clazz = clazz;
|
|
17
|
+
this.method = method;
|
|
18
|
+
this.adviceList = [];
|
|
19
|
+
}
|
|
20
|
+
addAdvice(adviceInfo) {
|
|
21
|
+
this.adviceList.push(adviceInfo);
|
|
22
|
+
}
|
|
23
|
+
build() {
|
|
24
|
+
this.adviceList.sort((a, b) => a.order - b.order);
|
|
25
|
+
const aspectAdviceList = this.adviceList.map((t, i) => {
|
|
26
|
+
return {
|
|
27
|
+
clazz: t.clazz,
|
|
28
|
+
name: this.adviceName(t.clazz, i),
|
|
29
|
+
adviceParams: t.adviceParams,
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
return new Aspect(this.clazz, this.method, aspectAdviceList);
|
|
33
|
+
}
|
|
34
|
+
adviceName(advice, index) {
|
|
35
|
+
return `${this.clazz.name}#${String(this.method)}#${advice.name}#${index}`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXNwZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsL0FzcGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sTUFBTTtJQUNSLEtBQUssQ0FBb0I7SUFDekIsTUFBTSxDQUFjO0lBQ3BCLFVBQVUsQ0FBMEI7SUFFN0MsWUFBWSxLQUF3QixFQUFFLE1BQW1CLEVBQUUsVUFBbUM7UUFDNUYsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGFBQWE7SUFDZixLQUFLLENBQW9CO0lBQ3pCLE1BQU0sQ0FBYztJQUNaLFVBQVUsQ0FBb0I7SUFFL0MsWUFBWSxLQUF3QixFQUFFLE1BQW1CO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxTQUFTLENBQUMsVUFBc0I7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEQsT0FBTztnQkFDTCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7Z0JBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWTthQUM3QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyxVQUFVLENBQUMsTUFBa0MsRUFBRSxLQUFhO1FBQ2xFLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7SUFDN0UsQ0FBQztDQUNGIn0=
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
match(clazz: EggProtoImplClass, method: PropertyKey): boolean;
|
|
1
|
+
import { PointcutType } from '@eggjs/tegg-types';
|
|
2
|
+
import type { CustomPointcutCallback, EggProtoImplClass, PointcutInfo } from '@eggjs/tegg-types';
|
|
3
|
+
export declare class ClassPointInfo implements PointcutInfo {
|
|
4
|
+
readonly type = PointcutType.CLASS;
|
|
5
|
+
readonly clazz: EggProtoImplClass;
|
|
6
|
+
readonly method: PropertyKey;
|
|
7
|
+
constructor(clazz: EggProtoImplClass, method: PropertyKey);
|
|
8
|
+
match(clazz: EggProtoImplClass, method: PropertyKey): boolean;
|
|
10
9
|
}
|
|
11
|
-
declare class NamePointInfo implements PointcutInfo {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
export declare class NamePointInfo implements PointcutInfo {
|
|
11
|
+
readonly type = PointcutType.NAME;
|
|
12
|
+
readonly className: RegExp;
|
|
13
|
+
readonly methodName: RegExp;
|
|
14
|
+
constructor(className: RegExp, methodName: RegExp);
|
|
15
|
+
match(clazz: EggProtoImplClass, method: PropertyKey): boolean;
|
|
17
16
|
}
|
|
18
|
-
declare class CustomPointInfo implements PointcutInfo {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
export declare class CustomPointInfo implements PointcutInfo {
|
|
18
|
+
readonly type = PointcutType.CUSTOM;
|
|
19
|
+
readonly cb: CustomPointcutCallback;
|
|
20
|
+
constructor(cb: CustomPointcutCallback);
|
|
21
|
+
match(clazz: EggProtoImplClass, method: PropertyKey): boolean;
|
|
23
22
|
}
|
|
24
|
-
//#endregion
|
|
25
|
-
export { ClassPointInfo, CustomPointInfo, NamePointInfo };
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { PointcutType } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
1
|
+
import { PointcutType } from '@eggjs/tegg-types';
|
|
2
|
+
export class ClassPointInfo {
|
|
3
|
+
type = PointcutType.CLASS;
|
|
4
|
+
clazz;
|
|
5
|
+
method;
|
|
6
|
+
constructor(clazz, method) {
|
|
7
|
+
this.clazz = clazz;
|
|
8
|
+
this.method = method;
|
|
9
|
+
}
|
|
10
|
+
match(clazz, method) {
|
|
11
|
+
return (
|
|
12
|
+
// self class
|
|
13
|
+
this.clazz === clazz ||
|
|
14
|
+
// inherit case
|
|
15
|
+
clazz.prototype instanceof this.clazz) && this.method === method;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class NamePointInfo {
|
|
19
|
+
type = PointcutType.NAME;
|
|
20
|
+
className;
|
|
21
|
+
methodName;
|
|
22
|
+
constructor(className, methodName) {
|
|
23
|
+
this.className = className;
|
|
24
|
+
this.methodName = methodName;
|
|
25
|
+
}
|
|
26
|
+
match(clazz, method) {
|
|
27
|
+
return this.className.test(clazz.name) && this.methodName.test(String(method));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export class CustomPointInfo {
|
|
31
|
+
type = PointcutType.CUSTOM;
|
|
32
|
+
cb;
|
|
33
|
+
constructor(cb) {
|
|
34
|
+
this.cb = cb;
|
|
35
|
+
}
|
|
36
|
+
match(clazz, method) {
|
|
37
|
+
return this.cb(clazz, method);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9pbnRjdXRJbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsL1BvaW50Y3V0SW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHakQsTUFBTSxPQUFPLGNBQWM7SUFDaEIsSUFBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDMUIsS0FBSyxDQUFvQjtJQUN6QixNQUFNLENBQWM7SUFFN0IsWUFBWSxLQUF3QixFQUFFLE1BQW1CO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBd0IsRUFBRSxNQUFtQjtRQUNqRCxPQUFPO1FBQ0wsYUFBYTtRQUNiLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSztZQUNwQixlQUFlO1lBQ2YsS0FBSyxDQUFDLFNBQVMsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUN0QyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxhQUFhO0lBQ2YsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDekIsU0FBUyxDQUFTO0lBQ2xCLFVBQVUsQ0FBUztJQUU1QixZQUFZLFNBQWlCLEVBQUUsVUFBa0I7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUF3QixFQUFFLE1BQW1CO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxlQUFlO0lBQ2pCLElBQUksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQzNCLEVBQUUsQ0FBeUI7SUFFcEMsWUFBWSxFQUEwQjtRQUNwQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBd0IsRUFBRSxNQUFtQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDRiJ9
|
package/dist/model/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export { };
|
|
1
|
+
export * from "./Aspect.js";
|
|
2
|
+
export * from "./PointcutInfo.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQyJ9
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { EggProtoImplClass, IAdvice } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static setIsAdvice(isAdvice: boolean, clazz: EggProtoImplClass<IAdvice>): void;
|
|
7
|
-
static isAdvice(clazz: EggProtoImplClass<IAdvice>): boolean;
|
|
1
|
+
import type { EggProtoImplClass, IAdvice } from '@eggjs/tegg-types';
|
|
2
|
+
export declare const IS_ADVICE: unique symbol;
|
|
3
|
+
export declare class AdviceInfoUtil {
|
|
4
|
+
static setIsAdvice(isAdvice: boolean, clazz: EggProtoImplClass<IAdvice>): void;
|
|
5
|
+
static isAdvice(clazz: EggProtoImplClass<IAdvice>): boolean;
|
|
8
6
|
}
|
|
9
|
-
//#endregion
|
|
10
|
-
export { AdviceInfoUtil, IS_ADVICE };
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
import { MetadataUtil } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
//#endregion
|
|
15
|
-
export { AdviceInfoUtil, IS_ADVICE };
|
|
1
|
+
import { MetadataUtil } from '@eggjs/core-decorator';
|
|
2
|
+
export const IS_ADVICE = Symbol.for('EggPrototype#isAdvice');
|
|
3
|
+
export class AdviceInfoUtil {
|
|
4
|
+
static setIsAdvice(isAdvice, clazz) {
|
|
5
|
+
MetadataUtil.defineMetaData(IS_ADVICE, isAdvice, clazz);
|
|
6
|
+
}
|
|
7
|
+
static isAdvice(clazz) {
|
|
8
|
+
return !!MetadataUtil.getMetaData(IS_ADVICE, clazz);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWR2aWNlSW5mb1V0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9BZHZpY2VJbmZvVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHckQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUU3RCxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWlCLEVBQUUsS0FBaUM7UUFDckUsWUFBWSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQWlDO1FBQy9DLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRiJ9
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static setAspectList(aspectList: Array<Aspect>, clazz: EggProtoImplClass<IAdvice>): void;
|
|
7
|
-
static getAspectList(clazz: EggProtoImplClass<IAdvice>): Array<Aspect>;
|
|
1
|
+
import type { EggProtoImplClass, IAdvice } from '@eggjs/tegg-types';
|
|
2
|
+
import { Aspect } from '../model/index.ts';
|
|
3
|
+
export declare class AspectInfoUtil {
|
|
4
|
+
static setAspectList(aspectList: Array<Aspect>, clazz: EggProtoImplClass<IAdvice>): void;
|
|
5
|
+
static getAspectList(clazz: EggProtoImplClass<IAdvice>): Array<Aspect>;
|
|
8
6
|
}
|
|
9
|
-
//#endregion
|
|
10
|
-
export { AspectInfoUtil };
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
//#endregion
|
|
16
|
-
export { AspectInfoUtil };
|
|
1
|
+
import { MetadataUtil } from '@eggjs/core-decorator';
|
|
2
|
+
import { ASPECT_LIST } from '@eggjs/tegg-types';
|
|
3
|
+
import { Aspect } from "../model/index.js";
|
|
4
|
+
export class AspectInfoUtil {
|
|
5
|
+
static setAspectList(aspectList, clazz) {
|
|
6
|
+
MetadataUtil.defineMetaData(ASPECT_LIST, aspectList, clazz);
|
|
7
|
+
}
|
|
8
|
+
static getAspectList(clazz) {
|
|
9
|
+
return MetadataUtil.getMetaData(ASPECT_LIST, clazz) || [];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXNwZWN0SW5mb1V0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9Bc3BlY3RJbmZvVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQyxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMsYUFBYSxDQUFDLFVBQXlCLEVBQUUsS0FBaUM7UUFDL0UsWUFBWSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWlDO1FBQ3BELE9BQU8sWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVELENBQUM7Q0FDRiJ9
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { CrosscutInfo, EggProtoImplClass, IAdvice } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
static addCrosscutInfo(crosscutInfo: CrosscutInfo, clazz: EggProtoImplClass<IAdvice>): void;
|
|
8
|
-
static getCrosscutInfoList(clazz: EggProtoImplClass<IAdvice>): Array<CrosscutInfo>;
|
|
1
|
+
import type { CrosscutInfo, EggProtoImplClass, IAdvice } from '@eggjs/tegg-types';
|
|
2
|
+
export declare class CrosscutInfoUtil {
|
|
3
|
+
static setIsCrosscutAdvice(isCrosscutAdvice: boolean, clazz: EggProtoImplClass<IAdvice>): void;
|
|
4
|
+
static isCrosscutAdvice(clazz: EggProtoImplClass<IAdvice>): boolean;
|
|
5
|
+
static addCrosscutInfo(crosscutInfo: CrosscutInfo, clazz: EggProtoImplClass<IAdvice>): void;
|
|
6
|
+
static getCrosscutInfoList(clazz: EggProtoImplClass<IAdvice>): Array<CrosscutInfo>;
|
|
9
7
|
}
|
|
10
|
-
//#endregion
|
|
11
|
-
export { CrosscutInfoUtil };
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
import { MetadataUtil } from
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
//#endregion
|
|
21
|
-
export { CrosscutInfoUtil };
|
|
1
|
+
import { MetadataUtil } from '@eggjs/core-decorator';
|
|
2
|
+
import { IS_CROSSCUT_ADVICE, CROSSCUT_INFO_LIST } from '@eggjs/tegg-types';
|
|
3
|
+
export class CrosscutInfoUtil {
|
|
4
|
+
static setIsCrosscutAdvice(isCrosscutAdvice, clazz) {
|
|
5
|
+
MetadataUtil.defineMetaData(IS_CROSSCUT_ADVICE, isCrosscutAdvice, clazz);
|
|
6
|
+
}
|
|
7
|
+
static isCrosscutAdvice(clazz) {
|
|
8
|
+
return !!MetadataUtil.getMetaData(IS_CROSSCUT_ADVICE, clazz);
|
|
9
|
+
}
|
|
10
|
+
static addCrosscutInfo(crosscutInfo, clazz) {
|
|
11
|
+
const crosscutInfoList = MetadataUtil.initOwnArrayMetaData(CROSSCUT_INFO_LIST, clazz, []);
|
|
12
|
+
crosscutInfoList.push(crosscutInfo);
|
|
13
|
+
}
|
|
14
|
+
static getCrosscutInfoList(clazz) {
|
|
15
|
+
return MetadataUtil.getArrayMetaData(CROSSCUT_INFO_LIST, clazz) || [];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3Jvc3NjdXRJbmZvVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL0Nyb3NzY3V0SW5mb1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzNFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGdCQUF5QixFQUFFLEtBQWlDO1FBQ3JGLFlBQVksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFpQztRQUN2RCxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLFlBQTBCLEVBQUUsS0FBaUM7UUFDbEYsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsb0JBQW9CLENBQWUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQWlDO1FBQzFELE9BQU8sWUFBWSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0NBQ0YifQ==
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import { AdviceInfo, EggProtoImplClass } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
static addPointcutAdviceInfo(adviceInfo: AdviceInfo, clazz: EggProtoImplClass, method: PropertyKey): void;
|
|
6
|
-
static getPointcutAdviceInfoList(clazz: EggProtoImplClass, method: PropertyKey): Array<AdviceInfo>;
|
|
1
|
+
import type { AdviceInfo, EggProtoImplClass } from '@eggjs/tegg-types';
|
|
2
|
+
export declare class PointcutAdviceInfoUtil {
|
|
3
|
+
static addPointcutAdviceInfo(adviceInfo: AdviceInfo, clazz: EggProtoImplClass, method: PropertyKey): void;
|
|
4
|
+
static getPointcutAdviceInfoList(clazz: EggProtoImplClass, method: PropertyKey): Array<AdviceInfo>;
|
|
7
5
|
}
|
|
8
|
-
//#endregion
|
|
9
|
-
export { PointcutAdviceInfoUtil };
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import { MetadataUtil } from
|
|
2
|
-
import { POINTCUT_ADVICE_INFO_LIAR } from
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
//#
|
|
18
|
-
export { PointcutAdviceInfoUtil };
|
|
1
|
+
import { MetadataUtil } from '@eggjs/core-decorator';
|
|
2
|
+
import { POINTCUT_ADVICE_INFO_LIAR } from '@eggjs/tegg-types';
|
|
3
|
+
export class PointcutAdviceInfoUtil {
|
|
4
|
+
static addPointcutAdviceInfo(adviceInfo, clazz, method) {
|
|
5
|
+
const pointcutAdviceInfoList = MetadataUtil.initOwnArrayMetaData(POINTCUT_ADVICE_INFO_LIAR, clazz, []);
|
|
6
|
+
// FIXME: parent/child should has correct order
|
|
7
|
+
pointcutAdviceInfoList.unshift({
|
|
8
|
+
method,
|
|
9
|
+
adviceInfo,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
static getPointcutAdviceInfoList(clazz, method) {
|
|
13
|
+
const pointcutAdviceInfoList = MetadataUtil.getMetaData(POINTCUT_ADVICE_INFO_LIAR, clazz) || [];
|
|
14
|
+
return pointcutAdviceInfoList.filter(t => t.method === method).map(t => t.adviceInfo);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9pbnRjdXRBZHZpY2VJbmZvVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL1BvaW50Y3V0QWR2aWNlSW5mb1V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBUTlELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFVBQXNCLEVBQUUsS0FBd0IsRUFBRSxNQUFtQjtRQUNoRyxNQUFNLHNCQUFzQixHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBcUIseUJBQXlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNILCtDQUErQztRQUMvQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7WUFDN0IsTUFBTTtZQUNOLFVBQVU7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLHlCQUF5QixDQUFDLEtBQXdCLEVBQUUsTUFBbUI7UUFDNUUsTUFBTSxzQkFBc0IsR0FBMEMsWUFBWSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkksT0FBTyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RixDQUFDO0NBQ0YifQ==
|
package/dist/util/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export { };
|
|
1
|
+
export * from "./AdviceInfoUtil.js";
|
|
2
|
+
export * from "./AspectInfoUtil.js";
|
|
3
|
+
export * from "./CrosscutInfoUtil.js";
|
|
4
|
+
export * from "./PointcutAdviceInfoUtil.js";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDZCQUE2QixDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/aop-decorator",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.9",
|
|
4
4
|
"description": "tegg aop decorator",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tegg",
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"directory": "core/aop-decorator"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@eggjs/
|
|
20
|
-
"@eggjs/tegg-
|
|
21
|
-
"@eggjs/
|
|
19
|
+
"@eggjs/tegg-common-util": "4.0.0-beta.9",
|
|
20
|
+
"@eggjs/tegg-types": "4.0.0-beta.9",
|
|
21
|
+
"@eggjs/core-decorator": "4.0.0-beta.9"
|
|
22
22
|
},
|
|
23
23
|
"publishConfig": {
|
|
24
24
|
"access": "public"
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"types": "./dist/index.d.ts",
|
|
50
50
|
"scripts": {
|
|
51
51
|
"clean": "rimraf dist",
|
|
52
|
-
"build": "tsdown",
|
|
52
|
+
"build": "tsdown && rimraf dist && tsc -b --clean && tsc",
|
|
53
53
|
"typecheck": "tsc --noEmit"
|
|
54
54
|
}
|
|
55
55
|
}
|