@eggjs/core-decorator 3.16.0 → 3.17.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/README.md +2 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -1
- package/dist/src/decorator/MultiInstanceProto.d.ts +29 -0
- package/dist/src/decorator/MultiInstanceProto.js +40 -0
- package/dist/src/model/EggMultiInstancePrototypeInfo.d.ts +48 -0
- package/dist/src/model/EggMultiInstancePrototypeInfo.js +3 -0
- package/dist/src/model/EggPrototypeInfo.d.ts +5 -0
- package/dist/src/util/PrototypeUtil.d.ts +37 -1
- package/dist/src/util/PrototypeUtil.js +75 -1
- package/package.json +3 -3
package/README.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -5,12 +5,14 @@ export * from './src/decorator/ModuleQualifier';
|
|
|
5
5
|
export * from './src/decorator/ContextProto';
|
|
6
6
|
export * from './src/decorator/SingletonProto';
|
|
7
7
|
export * from './src/decorator/EggQualifier';
|
|
8
|
+
export * from './src/decorator/MultiInstanceProto';
|
|
8
9
|
export * from './src/enum/AccessLevel';
|
|
9
10
|
export * from './src/enum/ObjectInitType';
|
|
10
11
|
export * from './src/enum/EggType';
|
|
11
12
|
export * from './src/model/EggPrototypeInfo';
|
|
12
13
|
export * from './src/model/InjectObjectInfo';
|
|
13
14
|
export * from './src/model/QualifierInfo';
|
|
15
|
+
export * from './src/model/EggMultiInstancePrototypeInfo';
|
|
14
16
|
export * from './src/util/MetadataUtil';
|
|
15
17
|
export * from './src/util/PrototypeUtil';
|
|
16
18
|
export * from './src/util/QualifierUtil';
|
package/dist/index.js
CHANGED
|
@@ -21,13 +21,15 @@ __exportStar(require("./src/decorator/ModuleQualifier"), exports);
|
|
|
21
21
|
__exportStar(require("./src/decorator/ContextProto"), exports);
|
|
22
22
|
__exportStar(require("./src/decorator/SingletonProto"), exports);
|
|
23
23
|
__exportStar(require("./src/decorator/EggQualifier"), exports);
|
|
24
|
+
__exportStar(require("./src/decorator/MultiInstanceProto"), exports);
|
|
24
25
|
__exportStar(require("./src/enum/AccessLevel"), exports);
|
|
25
26
|
__exportStar(require("./src/enum/ObjectInitType"), exports);
|
|
26
27
|
__exportStar(require("./src/enum/EggType"), exports);
|
|
27
28
|
__exportStar(require("./src/model/EggPrototypeInfo"), exports);
|
|
28
29
|
__exportStar(require("./src/model/InjectObjectInfo"), exports);
|
|
29
30
|
__exportStar(require("./src/model/QualifierInfo"), exports);
|
|
31
|
+
__exportStar(require("./src/model/EggMultiInstancePrototypeInfo"), exports);
|
|
30
32
|
__exportStar(require("./src/util/MetadataUtil"), exports);
|
|
31
33
|
__exportStar(require("./src/util/PrototypeUtil"), exports);
|
|
32
34
|
__exportStar(require("./src/util/QualifierUtil"), exports);
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQXVDO0FBQ3ZDLDREQUEwQztBQUMxQyxvRUFBa0Q7QUFDbEQsa0VBQWdEO0FBQ2hELCtEQUE2QztBQUM3QyxpRUFBK0M7QUFDL0MsK0RBQTZDO0FBQzdDLHFFQUFtRDtBQUVuRCx5REFBdUM7QUFDdkMsNERBQTBDO0FBQzFDLHFEQUFtQztBQUVuQywrREFBNkM7QUFDN0MsK0RBQTZDO0FBQzdDLDREQUEwQztBQUMxQyw0RUFBMEQ7QUFFMUQsMERBQXdDO0FBQ3hDLDJEQUF5QztBQUN6QywyREFBeUMifQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ObjectInitTypeLike } from '../enum/ObjectInitType';
|
|
2
|
+
import { AccessLevel } from '../enum/AccessLevel';
|
|
3
|
+
import { MultiInstancePrototypeGetObjectsContext, ObjectInfo } from '../model/EggMultiInstancePrototypeInfo';
|
|
4
|
+
import { EggProtoImplClass } from '../model/EggPrototypeInfo';
|
|
5
|
+
export interface BaseMultiInstancePrototypeCallbackParams {
|
|
6
|
+
/**
|
|
7
|
+
* obj init type
|
|
8
|
+
*/
|
|
9
|
+
initType?: ObjectInitTypeLike;
|
|
10
|
+
/**
|
|
11
|
+
* access level
|
|
12
|
+
*/
|
|
13
|
+
accessLevel?: AccessLevel;
|
|
14
|
+
/**
|
|
15
|
+
* EggPrototype implement type
|
|
16
|
+
*/
|
|
17
|
+
protoImplType?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface MultiInstancePrototypeCallbackParams extends BaseMultiInstancePrototypeCallbackParams {
|
|
20
|
+
getObjects(ctx: MultiInstancePrototypeGetObjectsContext): ObjectInfo[];
|
|
21
|
+
}
|
|
22
|
+
export interface MultiInstancePrototypeStaticParams extends BaseMultiInstancePrototypeCallbackParams {
|
|
23
|
+
/**
|
|
24
|
+
* object info list
|
|
25
|
+
*/
|
|
26
|
+
objects: ObjectInfo[];
|
|
27
|
+
}
|
|
28
|
+
export type MultiInstancePrototypeParams = MultiInstancePrototypeCallbackParams | MultiInstancePrototypeStaticParams;
|
|
29
|
+
export declare function MultiInstanceProto(param: MultiInstancePrototypeParams): (clazz: EggProtoImplClass) => void;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultiInstanceProto = void 0;
|
|
4
|
+
const ObjectInitType_1 = require("../enum/ObjectInitType");
|
|
5
|
+
const AccessLevel_1 = require("../enum/AccessLevel");
|
|
6
|
+
const Prototype_1 = require("./Prototype");
|
|
7
|
+
const PrototypeUtil_1 = require("../util/PrototypeUtil");
|
|
8
|
+
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
9
|
+
const DEFAULT_PARAMS = {
|
|
10
|
+
initType: ObjectInitType_1.ObjectInitType.SINGLETON,
|
|
11
|
+
accessLevel: AccessLevel_1.AccessLevel.PRIVATE,
|
|
12
|
+
protoImplType: Prototype_1.DEFAULT_PROTO_IMPL_TYPE,
|
|
13
|
+
};
|
|
14
|
+
function MultiInstanceProto(param) {
|
|
15
|
+
return function (clazz) {
|
|
16
|
+
PrototypeUtil_1.PrototypeUtil.setIsEggMultiInstancePrototype(clazz);
|
|
17
|
+
if (param.objects) {
|
|
18
|
+
const property = {
|
|
19
|
+
...DEFAULT_PARAMS,
|
|
20
|
+
...param,
|
|
21
|
+
};
|
|
22
|
+
PrototypeUtil_1.PrototypeUtil.setMultiInstanceStaticProperty(clazz, property);
|
|
23
|
+
}
|
|
24
|
+
else if (param.getObjects) {
|
|
25
|
+
const property = {
|
|
26
|
+
...DEFAULT_PARAMS,
|
|
27
|
+
...param,
|
|
28
|
+
};
|
|
29
|
+
PrototypeUtil_1.PrototypeUtil.setMultiInstanceCallbackProperty(clazz, property);
|
|
30
|
+
}
|
|
31
|
+
// './tegg/core/common-util/src/StackUtil.ts',
|
|
32
|
+
// './tegg/core/core-decorator/src/decorator/Prototype.ts',
|
|
33
|
+
// './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
|
|
34
|
+
// './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
|
|
35
|
+
// './tegg/core/core-decorator/test/fixtures/decators/CacheService.ts',
|
|
36
|
+
PrototypeUtil_1.PrototypeUtil.setFilePath(clazz, tegg_common_util_1.StackUtil.getCalleeFromStack(false, 4));
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
exports.MultiInstanceProto = MultiInstanceProto;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlJbnN0YW5jZVByb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RlY29yYXRvci9NdWx0aUluc3RhbmNlUHJvdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQTRFO0FBQzVFLHFEQUFrRDtBQUNsRCwyQ0FBc0Q7QUFRdEQseURBQXNEO0FBQ3RELDhEQUFvRDtBQUVwRCxNQUFNLGNBQWMsR0FBRztJQUNyQixRQUFRLEVBQUUsK0JBQWMsQ0FBQyxTQUFTO0lBQ2xDLFdBQVcsRUFBRSx5QkFBVyxDQUFDLE9BQU87SUFDaEMsYUFBYSxFQUFFLG1DQUF1QjtDQUN2QyxDQUFDO0FBOEJGLFNBQWdCLGtCQUFrQixDQUFDLEtBQW1DO0lBQ3BFLE9BQU8sVUFBUyxLQUF3QjtRQUN0Qyw2QkFBYSxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUssS0FBNEMsQ0FBQyxPQUFPLEVBQUU7WUFDekQsTUFBTSxRQUFRLEdBQWtDO2dCQUM5QyxHQUFHLGNBQWM7Z0JBQ2pCLEdBQUcsS0FBMkM7YUFDL0MsQ0FBQztZQUNGLDZCQUFhLENBQUMsOEJBQThCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQy9EO2FBQU0sSUFBSyxLQUE4QyxDQUFDLFVBQVUsRUFBRTtZQUNyRSxNQUFNLFFBQVEsR0FBMEM7Z0JBQ3RELEdBQUcsY0FBYztnQkFDakIsR0FBRyxLQUE2QzthQUNqRCxDQUFDO1lBQ0YsNkJBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDakU7UUFHRCw4Q0FBOEM7UUFDOUMsMkRBQTJEO1FBQzNELGtHQUFrRztRQUNsRyxrR0FBa0c7UUFDbEcsdUVBQXVFO1FBQ3ZFLDZCQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSw0QkFBUyxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUMsQ0FBQztBQUNKLENBQUM7QUF6QkQsZ0RBeUJDIn0=
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ObjectInitTypeLike } from '../enum/ObjectInitType';
|
|
2
|
+
import { AccessLevel } from '../enum/AccessLevel';
|
|
3
|
+
import { EggPrototypeName } from './EggPrototypeInfo';
|
|
4
|
+
import { QualifierInfo } from './QualifierInfo';
|
|
5
|
+
export interface ObjectInfo {
|
|
6
|
+
name: EggPrototypeName;
|
|
7
|
+
qualifiers: QualifierInfo[];
|
|
8
|
+
}
|
|
9
|
+
export interface MultiInstancePrototypeGetObjectsContext {
|
|
10
|
+
unitPath: string;
|
|
11
|
+
}
|
|
12
|
+
export interface EggMultiInstancePrototypeInfo {
|
|
13
|
+
/**
|
|
14
|
+
* obj init type
|
|
15
|
+
*/
|
|
16
|
+
initType: ObjectInitTypeLike;
|
|
17
|
+
/**
|
|
18
|
+
* access level
|
|
19
|
+
*/
|
|
20
|
+
accessLevel: AccessLevel;
|
|
21
|
+
/**
|
|
22
|
+
* EggPrototype implement type
|
|
23
|
+
*/
|
|
24
|
+
protoImplType: string;
|
|
25
|
+
/**
|
|
26
|
+
* object info list
|
|
27
|
+
*/
|
|
28
|
+
objects: ObjectInfo[];
|
|
29
|
+
}
|
|
30
|
+
export interface EggMultiInstanceCallbackPrototypeInfo {
|
|
31
|
+
/**
|
|
32
|
+
* obj init type
|
|
33
|
+
*/
|
|
34
|
+
initType: ObjectInitTypeLike;
|
|
35
|
+
/**
|
|
36
|
+
* access level
|
|
37
|
+
*/
|
|
38
|
+
accessLevel: AccessLevel;
|
|
39
|
+
/**
|
|
40
|
+
* EggPrototype implement type
|
|
41
|
+
*/
|
|
42
|
+
protoImplType: string;
|
|
43
|
+
/**
|
|
44
|
+
* get object callback
|
|
45
|
+
* @param ctx
|
|
46
|
+
*/
|
|
47
|
+
getObjects(ctx: MultiInstancePrototypeGetObjectsContext): ObjectInfo[];
|
|
48
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnTXVsdGlJbnN0YW5jZVByb3RvdHlwZUluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvRWdnTXVsdGlJbnN0YW5jZVByb3RvdHlwZUluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ObjectInitTypeLike } from '../enum/ObjectInitType';
|
|
2
2
|
import { AccessLevel } from '../enum/AccessLevel';
|
|
3
|
+
import { QualifierInfo } from './QualifierInfo';
|
|
3
4
|
export type EggProtoImplClass<T = object> = new (...args: any[]) => T;
|
|
4
5
|
export type EggPrototypeName = PropertyKey;
|
|
5
6
|
export interface EggPrototypeInfo {
|
|
@@ -19,4 +20,8 @@ export interface EggPrototypeInfo {
|
|
|
19
20
|
* EggPrototype implement type
|
|
20
21
|
*/
|
|
21
22
|
protoImplType: string;
|
|
23
|
+
/**
|
|
24
|
+
* EggPrototype qualifiers
|
|
25
|
+
*/
|
|
26
|
+
qualifiers?: QualifierInfo[];
|
|
22
27
|
}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { EggProtoImplClass, EggPrototypeInfo } from '../model/EggPrototypeInfo';
|
|
1
|
+
import { EggProtoImplClass, EggPrototypeInfo, EggPrototypeName } from '../model/EggPrototypeInfo';
|
|
2
2
|
import { InjectObjectInfo } from '../model/InjectObjectInfo';
|
|
3
|
+
import { EggMultiInstanceCallbackPrototypeInfo, EggMultiInstancePrototypeInfo, MultiInstancePrototypeGetObjectsContext } from '../model/EggMultiInstancePrototypeInfo';
|
|
3
4
|
export declare class PrototypeUtil {
|
|
4
5
|
static readonly IS_EGG_OBJECT_PROTOTYPE: unique symbol;
|
|
6
|
+
static readonly IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE: unique symbol;
|
|
5
7
|
static readonly FILE_PATH: unique symbol;
|
|
6
8
|
static readonly PROTOTYPE_PROPERTY: unique symbol;
|
|
9
|
+
static readonly MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY: unique symbol;
|
|
10
|
+
static readonly MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY: unique symbol;
|
|
7
11
|
static readonly INJECT_OBJECT_NAME_SET: unique symbol;
|
|
8
12
|
static readonly CLAZZ_PROTO: unique symbol;
|
|
9
13
|
/**
|
|
@@ -16,6 +20,16 @@ export declare class PrototypeUtil {
|
|
|
16
20
|
* @param {Function} clazz -
|
|
17
21
|
*/
|
|
18
22
|
static isEggPrototype(clazz: EggProtoImplClass): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Mark class is egg object multi instance prototype
|
|
25
|
+
* @param {Function} clazz -
|
|
26
|
+
*/
|
|
27
|
+
static setIsEggMultiInstancePrototype(clazz: EggProtoImplClass): void;
|
|
28
|
+
/**
|
|
29
|
+
* If class is egg object multi instance prototype, return true
|
|
30
|
+
* @param {Function} clazz -
|
|
31
|
+
*/
|
|
32
|
+
static isEggMultiInstancePrototype(clazz: EggProtoImplClass): boolean;
|
|
19
33
|
/**
|
|
20
34
|
* set class file path
|
|
21
35
|
* @param {Function} clazz -
|
|
@@ -39,6 +53,28 @@ export declare class PrototypeUtil {
|
|
|
39
53
|
* @return {EggPrototypeInfo} -
|
|
40
54
|
*/
|
|
41
55
|
static getProperty(clazz: EggProtoImplClass): EggPrototypeInfo | undefined;
|
|
56
|
+
static getInitType(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): string | undefined;
|
|
57
|
+
static getAccessLevel(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): string | undefined;
|
|
58
|
+
static getObjNames(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): EggPrototypeName[];
|
|
59
|
+
/**
|
|
60
|
+
* set class property
|
|
61
|
+
* @param {EggProtoImplClass} clazz -
|
|
62
|
+
* @param {EggPrototypeInfo} property -
|
|
63
|
+
*/
|
|
64
|
+
static setMultiInstanceStaticProperty(clazz: EggProtoImplClass, property: EggMultiInstancePrototypeInfo): void;
|
|
65
|
+
/**
|
|
66
|
+
* set class property
|
|
67
|
+
* @param {EggProtoImplClass} clazz -
|
|
68
|
+
* @param {EggPrototypeInfo} property -
|
|
69
|
+
*/
|
|
70
|
+
static setMultiInstanceCallbackProperty(clazz: EggProtoImplClass, property: EggMultiInstanceCallbackPrototypeInfo): void;
|
|
71
|
+
/**
|
|
72
|
+
* get class property
|
|
73
|
+
* @param {EggProtoImplClass} clazz -
|
|
74
|
+
* @param {MultiInstancePrototypeGetObjectsContext} ctx -
|
|
75
|
+
* @return {EggPrototypeInfo} -
|
|
76
|
+
*/
|
|
77
|
+
static getMultiInstanceProperty(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): EggMultiInstancePrototypeInfo | undefined;
|
|
42
78
|
static addInjectObject(clazz: EggProtoImplClass, injectObject: InjectObjectInfo): void;
|
|
43
79
|
static getInjectObjects(clazz: EggProtoImplClass): Array<InjectObjectInfo>;
|
|
44
80
|
static getClazzProto(clazz: EggProtoImplClass): object | undefined;
|
|
@@ -17,6 +17,20 @@ class PrototypeUtil {
|
|
|
17
17
|
static isEggPrototype(clazz) {
|
|
18
18
|
return MetadataUtil_1.MetadataUtil.getBooleanMetaData(this.IS_EGG_OBJECT_PROTOTYPE, clazz);
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Mark class is egg object multi instance prototype
|
|
22
|
+
* @param {Function} clazz -
|
|
23
|
+
*/
|
|
24
|
+
static setIsEggMultiInstancePrototype(clazz) {
|
|
25
|
+
MetadataUtil_1.MetadataUtil.defineMetaData(this.IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE, true, clazz);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* If class is egg object multi instance prototype, return true
|
|
29
|
+
* @param {Function} clazz -
|
|
30
|
+
*/
|
|
31
|
+
static isEggMultiInstancePrototype(clazz) {
|
|
32
|
+
return MetadataUtil_1.MetadataUtil.getBooleanMetaData(this.IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE, clazz);
|
|
33
|
+
}
|
|
20
34
|
/**
|
|
21
35
|
* set class file path
|
|
22
36
|
* @param {Function} clazz -
|
|
@@ -48,6 +62,63 @@ class PrototypeUtil {
|
|
|
48
62
|
static getProperty(clazz) {
|
|
49
63
|
return MetadataUtil_1.MetadataUtil.getMetaData(this.PROTOTYPE_PROPERTY, clazz);
|
|
50
64
|
}
|
|
65
|
+
static getInitType(clazz, ctx) {
|
|
66
|
+
var _a;
|
|
67
|
+
const property = (_a = this.getProperty(clazz)) !== null && _a !== void 0 ? _a : this.getMultiInstanceProperty(clazz, ctx);
|
|
68
|
+
return property === null || property === void 0 ? void 0 : property.initType;
|
|
69
|
+
}
|
|
70
|
+
static getAccessLevel(clazz, ctx) {
|
|
71
|
+
var _a;
|
|
72
|
+
const property = (_a = this.getProperty(clazz)) !== null && _a !== void 0 ? _a : this.getMultiInstanceProperty(clazz, ctx);
|
|
73
|
+
return property === null || property === void 0 ? void 0 : property.accessLevel;
|
|
74
|
+
}
|
|
75
|
+
static getObjNames(clazz, ctx) {
|
|
76
|
+
const property = this.getProperty(clazz);
|
|
77
|
+
if (property) {
|
|
78
|
+
return [property.name];
|
|
79
|
+
}
|
|
80
|
+
const multiInstanceProperty = this.getMultiInstanceProperty(clazz, ctx);
|
|
81
|
+
return (multiInstanceProperty === null || multiInstanceProperty === void 0 ? void 0 : multiInstanceProperty.objects.map(t => t.name)) || [];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* set class property
|
|
85
|
+
* @param {EggProtoImplClass} clazz -
|
|
86
|
+
* @param {EggPrototypeInfo} property -
|
|
87
|
+
*/
|
|
88
|
+
static setMultiInstanceStaticProperty(clazz, property) {
|
|
89
|
+
MetadataUtil_1.MetadataUtil.defineMetaData(this.MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY, property, clazz);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* set class property
|
|
93
|
+
* @param {EggProtoImplClass} clazz -
|
|
94
|
+
* @param {EggPrototypeInfo} property -
|
|
95
|
+
*/
|
|
96
|
+
static setMultiInstanceCallbackProperty(clazz, property) {
|
|
97
|
+
MetadataUtil_1.MetadataUtil.defineMetaData(this.MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY, property, clazz);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* get class property
|
|
101
|
+
* @param {EggProtoImplClass} clazz -
|
|
102
|
+
* @param {MultiInstancePrototypeGetObjectsContext} ctx -
|
|
103
|
+
* @return {EggPrototypeInfo} -
|
|
104
|
+
*/
|
|
105
|
+
static getMultiInstanceProperty(clazz, ctx) {
|
|
106
|
+
const metadata = MetadataUtil_1.MetadataUtil.getMetaData(this.MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY, clazz);
|
|
107
|
+
if (metadata) {
|
|
108
|
+
return metadata;
|
|
109
|
+
}
|
|
110
|
+
const callBackMetadata = MetadataUtil_1.MetadataUtil.getMetaData(this.MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY, clazz);
|
|
111
|
+
// callback only be called once
|
|
112
|
+
// cache result to static property
|
|
113
|
+
if (callBackMetadata) {
|
|
114
|
+
const metadata = {
|
|
115
|
+
...callBackMetadata,
|
|
116
|
+
objects: callBackMetadata.getObjects(ctx),
|
|
117
|
+
};
|
|
118
|
+
this.setMultiInstanceStaticProperty(clazz, metadata);
|
|
119
|
+
return metadata;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
51
122
|
static addInjectObject(clazz, injectObject) {
|
|
52
123
|
const objs = MetadataUtil_1.MetadataUtil.initOwnArrayMetaData(this.INJECT_OBJECT_NAME_SET, clazz, []);
|
|
53
124
|
objs.push(injectObject);
|
|
@@ -70,8 +141,11 @@ class PrototypeUtil {
|
|
|
70
141
|
}
|
|
71
142
|
exports.PrototypeUtil = PrototypeUtil;
|
|
72
143
|
PrototypeUtil.IS_EGG_OBJECT_PROTOTYPE = Symbol.for('EggPrototype#isEggPrototype');
|
|
144
|
+
PrototypeUtil.IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE = Symbol.for('EggPrototype#isEggMultiInstancePrototype');
|
|
73
145
|
PrototypeUtil.FILE_PATH = Symbol.for('EggPrototype.filePath');
|
|
74
146
|
PrototypeUtil.PROTOTYPE_PROPERTY = Symbol.for('EggPrototype.Property');
|
|
147
|
+
PrototypeUtil.MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY = Symbol.for('EggPrototype.MultiInstanceStaticProperty');
|
|
148
|
+
PrototypeUtil.MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY = Symbol.for('EggPrototype.MultiInstanceCallbackProperty');
|
|
75
149
|
PrototypeUtil.INJECT_OBJECT_NAME_SET = Symbol.for('EggPrototype.injectObjectNames');
|
|
76
150
|
PrototypeUtil.CLAZZ_PROTO = Symbol.for('EggPrototype.clazzProto');
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdG90eXBlVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL1Byb3RvdHlwZVV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQThDO0FBUTlDLE1BQWEsYUFBYTtJQVV4Qjs7O09BR0c7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBd0I7UUFDL0MsMkJBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUF3QjtRQUM1QyxPQUFPLDJCQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsOEJBQThCLENBQUMsS0FBd0I7UUFDNUQsMkJBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLDJCQUEyQixDQUFDLEtBQXdCO1FBQ3pELE9BQU8sMkJBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQXdCLEVBQUUsUUFBZ0I7UUFDM0QsMkJBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBd0I7UUFDekMsT0FBTywyQkFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUF3QixFQUFFLFFBQTBCO1FBQ3JFLDJCQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQXdCO1FBQ3pDLE9BQU8sMkJBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQXdCLEVBQUUsR0FBNEM7O1FBQ3ZGLE1BQU0sUUFBUSxHQUFHLE1BQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsbUNBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN0RixPQUFPLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBd0IsRUFBRSxHQUE0Qzs7UUFDMUYsTUFBTSxRQUFRLEdBQUcsTUFBQSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxtQ0FBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLFdBQVcsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUF3QixFQUFFLEdBQTRDO1FBQ3ZGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLENBQUUsUUFBUSxDQUFDLElBQUksQ0FBRSxDQUFDO1NBQzFCO1FBQ0QsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sQ0FBQSxxQkFBcUIsYUFBckIscUJBQXFCLHVCQUFyQixxQkFBcUIsQ0FBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFJLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxLQUF3QixFQUFFLFFBQXVDO1FBQ3JHLDJCQUFZLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsZ0NBQWdDLENBQUMsS0FBd0IsRUFBRSxRQUErQztRQUMvRywyQkFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsMENBQTBDLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxLQUF3QixFQUFFLEdBQTRDO1FBQ3BHLE1BQU0sUUFBUSxHQUFHLDJCQUFZLENBQUMsV0FBVyxDQUFnQyxJQUFJLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0gsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLFFBQVEsQ0FBQztTQUNqQjtRQUNELE1BQU0sZ0JBQWdCLEdBQUcsMkJBQVksQ0FBQyxXQUFXLENBQXdDLElBQUksQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqSiwrQkFBK0I7UUFDL0Isa0NBQWtDO1FBQ2xDLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsTUFBTSxRQUFRLEdBQUc7Z0JBQ2YsR0FBRyxnQkFBZ0I7Z0JBQ25CLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO2FBQzFDLENBQUM7WUFDRixJQUFJLENBQUMsOEJBQThCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sUUFBUSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBd0IsRUFBRSxZQUE4QjtRQUM3RSxNQUFNLElBQUksR0FBdUIsMkJBQVksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEIsMkJBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQXdCO1FBQzlDLE9BQU8sMkJBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixNQUFNLENBQUMsYUFBYSxDQUFDLEtBQXdCO1FBQzNDLE9BQU8sMkJBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBd0IsRUFBRSxLQUFhO1FBQzFELE9BQU8sMkJBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBd0IsRUFBRSxPQUFxQjtRQUNsRSxPQUFPLDJCQUFZLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakUsQ0FBQzs7QUFoS0gsc0NBaUtDO0FBaEtpQixxQ0FBdUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFDcEUsb0RBQXNDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBQ2hHLHVCQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ2hELGdDQUFrQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUN6RCxzREFBd0MsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFDbEcsd0RBQTBDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0FBQ3RHLG9DQUFzQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztBQUN0RSx5QkFBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/core-decorator",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.17.0",
|
|
4
4
|
"description": "tegg core decorator",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"node": ">=14.0.0"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@eggjs/tegg-common-util": "^3.
|
|
39
|
+
"@eggjs/tegg-common-util": "^3.17.0",
|
|
40
40
|
"reflect-metadata": "^0.1.13"
|
|
41
41
|
},
|
|
42
42
|
"publishConfig": {
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"ts-node": "^10.9.1",
|
|
51
51
|
"typescript": "^5.0.4"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "f049412d99d784468f48e030dcc501c428112d63"
|
|
54
54
|
}
|