@eggjs/core-decorator 4.0.0-beta.3 → 4.0.0-beta.5
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 +13 -1
- package/dist/decorator/ConfigSource.d.ts +4 -0
- package/dist/decorator/ConfigSource.js +13 -0
- package/dist/decorator/ContextProto.d.ts +7 -0
- package/dist/decorator/ContextProto.js +14 -0
- package/dist/decorator/EggQualifier.d.ts +6 -0
- package/dist/decorator/EggQualifier.js +13 -0
- package/dist/decorator/InitTypeQualifier.d.ts +6 -0
- package/dist/decorator/InitTypeQualifier.js +13 -0
- package/dist/decorator/Inject.d.ts +7 -0
- package/dist/decorator/Inject.js +77 -0
- package/dist/decorator/ModuleQualifier.d.ts +4 -0
- package/dist/decorator/ModuleQualifier.js +13 -0
- package/dist/decorator/MultiInstanceInfo.d.ts +6 -0
- package/dist/decorator/MultiInstanceInfo.js +13 -0
- package/dist/decorator/MultiInstanceProto.d.ts +6 -0
- package/dist/decorator/MultiInstanceProto.js +35 -0
- package/dist/decorator/Prototype.d.ts +6 -0
- package/dist/decorator/Prototype.js +27 -0
- package/dist/decorator/SingletonProto.d.ts +7 -0
- package/dist/decorator/SingletonProto.js +14 -0
- package/dist/decorator/index.js +12 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +19 -0
- package/dist/util/MetadataUtil.d.ts +39 -0
- package/dist/util/MetadataUtil.js +75 -0
- package/dist/util/PrototypeUtil.d.ts +112 -0
- package/dist/util/PrototypeUtil.js +216 -0
- package/dist/util/QualifierUtil.d.ts +17 -0
- package/dist/util/QualifierUtil.js +67 -0
- package/dist/util/index.js +5 -0
- package/package.json +24 -26
- package/src/decorator/ConfigSource.d.ts +0 -1
- package/src/decorator/ConfigSource.js +0 -8
- package/src/decorator/ContextProto.d.ts +0 -2
- package/src/decorator/ContextProto.js +0 -10
- package/src/decorator/EggQualifier.d.ts +0 -2
- package/src/decorator/EggQualifier.js +0 -8
- package/src/decorator/InitTypeQualifier.d.ts +0 -2
- package/src/decorator/InitTypeQualifier.js +0 -8
- package/src/decorator/Inject.d.ts +0 -3
- package/src/decorator/Inject.js +0 -95
- package/src/decorator/ModuleQualifier.d.ts +0 -1
- package/src/decorator/ModuleQualifier.js +0 -8
- package/src/decorator/MultiInstanceInfo.d.ts +0 -2
- package/src/decorator/MultiInstanceInfo.js +0 -8
- package/src/decorator/MultiInstanceProto.d.ts +0 -2
- package/src/decorator/MultiInstanceProto.js +0 -36
- package/src/decorator/Prototype.d.ts +0 -2
- package/src/decorator/Prototype.js +0 -29
- package/src/decorator/SingletonProto.d.ts +0 -2
- package/src/decorator/SingletonProto.js +0 -10
- package/src/decorator/index.d.ts +0 -10
- package/src/decorator/index.js +0 -11
- package/src/index.d.ts +0 -3
- package/src/index.js +0 -4
- package/src/util/MetadataUtil.d.ts +0 -35
- package/src/util/MetadataUtil.js +0 -83
- package/src/util/PrototypeUtil.d.ts +0 -108
- package/src/util/PrototypeUtil.js +0 -249
- package/src/util/QualifierUtil.d.ts +0 -13
- package/src/util/QualifierUtil.js +0 -95
- package/src/util/index.d.ts +0 -3
- package/src/util/index.js +0 -4
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { MetadataUtil } from "./MetadataUtil.js";
|
|
2
|
+
import { InitTypeQualifierAttribute, InjectType, LoadUnitNameQualifierAttribute, MultiInstanceType } from "@eggjs/tegg-types";
|
|
3
|
+
|
|
4
|
+
//#region src/util/PrototypeUtil.ts
|
|
5
|
+
var PrototypeUtil = class PrototypeUtil {
|
|
6
|
+
static IS_EGG_OBJECT_PROTOTYPE = Symbol.for("EggPrototype#isEggPrototype");
|
|
7
|
+
static IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE = Symbol.for("EggPrototype#isEggMultiInstancePrototype");
|
|
8
|
+
static FILE_PATH = Symbol.for("EggPrototype.filePath");
|
|
9
|
+
static PROTOTYPE_PROPERTY = Symbol.for("EggPrototype.Property");
|
|
10
|
+
static MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY = Symbol.for("EggPrototype.MultiInstanceStaticProperty");
|
|
11
|
+
static MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY = Symbol.for("EggPrototype.MultiInstanceCallbackProperty");
|
|
12
|
+
static INJECT_OBJECT_NAME_SET = Symbol.for("EggPrototype.injectObjectNames");
|
|
13
|
+
static INJECT_TYPE = Symbol.for("EggPrototype.injectType");
|
|
14
|
+
static INJECT_CONSTRUCTOR_NAME_SET = Symbol.for("EggPrototype.injectConstructorNames");
|
|
15
|
+
static CLAZZ_PROTO = Symbol.for("EggPrototype.clazzProto");
|
|
16
|
+
static MULTI_INSTANCE_CONSTRUCTOR_INDEX = Symbol.for("EggPrototype#multiInstanceConstructorIndex");
|
|
17
|
+
static MULTI_INSTANCE_CONSTRUCTOR_ATTRIBUTES = Symbol.for("EggPrototype#multiInstanceConstructorAttributes");
|
|
18
|
+
/**
|
|
19
|
+
* Mark class is egg object prototype
|
|
20
|
+
* @param {Function} clazz -
|
|
21
|
+
*/
|
|
22
|
+
static setIsEggPrototype(clazz) {
|
|
23
|
+
MetadataUtil.defineMetaData(PrototypeUtil.IS_EGG_OBJECT_PROTOTYPE, true, clazz);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* If class is egg object prototype, return true
|
|
27
|
+
* @param {Function} clazz -
|
|
28
|
+
*/
|
|
29
|
+
static isEggPrototype(clazz) {
|
|
30
|
+
return MetadataUtil.getOwnBooleanMetaData(PrototypeUtil.IS_EGG_OBJECT_PROTOTYPE, clazz);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Mark class is egg object multi instance prototype
|
|
34
|
+
* @param {Function} clazz -
|
|
35
|
+
*/
|
|
36
|
+
static setIsEggMultiInstancePrototype(clazz) {
|
|
37
|
+
MetadataUtil.defineMetaData(PrototypeUtil.IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE, true, clazz);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* If class is egg object multi instance prototype, return true
|
|
41
|
+
* @param {Function} clazz -
|
|
42
|
+
*/
|
|
43
|
+
static isEggMultiInstancePrototype(clazz) {
|
|
44
|
+
return MetadataUtil.getOwnBooleanMetaData(PrototypeUtil.IS_EGG_OBJECT_MULTI_INSTANCE_PROTOTYPE, clazz);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get the type of the egg multi-instance prototype.
|
|
48
|
+
* @param {Function} clazz -
|
|
49
|
+
*/
|
|
50
|
+
static getEggMultiInstancePrototypeType(clazz) {
|
|
51
|
+
if (!PrototypeUtil.isEggMultiInstancePrototype(clazz)) return;
|
|
52
|
+
if (MetadataUtil.getOwnMetaData(PrototypeUtil.MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY, clazz)) return MultiInstanceType.STATIC;
|
|
53
|
+
return MultiInstanceType.DYNAMIC;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* set class file path
|
|
57
|
+
* @param {Function} clazz -
|
|
58
|
+
* @param {string} filePath -
|
|
59
|
+
*/
|
|
60
|
+
static setFilePath(clazz, filePath) {
|
|
61
|
+
MetadataUtil.defineMetaData(PrototypeUtil.FILE_PATH, filePath, clazz);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* get class file path
|
|
65
|
+
* @param {Function} clazz -
|
|
66
|
+
*/
|
|
67
|
+
static getFilePath(clazz) {
|
|
68
|
+
return MetadataUtil.getOwnMetaData(PrototypeUtil.FILE_PATH, clazz);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* set class property
|
|
72
|
+
* @param {EggProtoImplClass} clazz -
|
|
73
|
+
* @param {EggPrototypeInfo} property -
|
|
74
|
+
*/
|
|
75
|
+
static setProperty(clazz, property) {
|
|
76
|
+
MetadataUtil.defineMetaData(PrototypeUtil.PROTOTYPE_PROPERTY, property, clazz);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* get class property
|
|
80
|
+
* @param {EggProtoImplClass} clazz -
|
|
81
|
+
* @return {EggPrototypeInfo} -
|
|
82
|
+
*/
|
|
83
|
+
static getProperty(clazz) {
|
|
84
|
+
return MetadataUtil.getOwnMetaData(PrototypeUtil.PROTOTYPE_PROPERTY, clazz);
|
|
85
|
+
}
|
|
86
|
+
static async getInitType(clazz, ctx) {
|
|
87
|
+
return (PrototypeUtil.getProperty(clazz) ?? await PrototypeUtil.getMultiInstanceProperty(clazz, ctx))?.initType;
|
|
88
|
+
}
|
|
89
|
+
static async getAccessLevel(clazz, ctx) {
|
|
90
|
+
return (PrototypeUtil.getProperty(clazz) ?? await PrototypeUtil.getMultiInstanceProperty(clazz, ctx))?.accessLevel;
|
|
91
|
+
}
|
|
92
|
+
static async getObjNames(clazz, ctx) {
|
|
93
|
+
const property = PrototypeUtil.getProperty(clazz);
|
|
94
|
+
if (property) return [property.name];
|
|
95
|
+
return (await PrototypeUtil.getMultiInstanceProperty(clazz, ctx))?.objects.map((t) => t.name) || [];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* set class property
|
|
99
|
+
* @param {EggProtoImplClass} clazz -
|
|
100
|
+
* @param {EggPrototypeInfo} property -
|
|
101
|
+
*/
|
|
102
|
+
static setMultiInstanceStaticProperty(clazz, property) {
|
|
103
|
+
MetadataUtil.defineMetaData(PrototypeUtil.MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY, property, clazz);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* set class property
|
|
107
|
+
* @param {EggProtoImplClass} clazz -
|
|
108
|
+
* @param {EggPrototypeInfo} property -
|
|
109
|
+
*/
|
|
110
|
+
static setMultiInstanceCallbackProperty(clazz, property) {
|
|
111
|
+
MetadataUtil.defineMetaData(PrototypeUtil.MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY, property, clazz);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get instance property of Static multi-instance prototype.
|
|
115
|
+
* @param {EggProtoImplClass} clazz -
|
|
116
|
+
*/
|
|
117
|
+
static getStaticMultiInstanceProperty(clazz) {
|
|
118
|
+
const metadata = MetadataUtil.getOwnMetaData(PrototypeUtil.MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY, clazz);
|
|
119
|
+
if (metadata) return metadata;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get instance property of Dynamic multi-instance prototype.
|
|
123
|
+
* @param {EggProtoImplClass} clazz -
|
|
124
|
+
* @param {MultiInstancePrototypeGetObjectsContext} ctx -
|
|
125
|
+
*/
|
|
126
|
+
static async getDynamicMultiInstanceProperty(clazz, ctx) {
|
|
127
|
+
const callBackMetadata = MetadataUtil.getOwnMetaData(PrototypeUtil.MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY, clazz);
|
|
128
|
+
if (callBackMetadata) {
|
|
129
|
+
const objects = await callBackMetadata.getObjects(ctx);
|
|
130
|
+
return {
|
|
131
|
+
...callBackMetadata,
|
|
132
|
+
objects
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* get class property
|
|
138
|
+
* @param {EggProtoImplClass} clazz -
|
|
139
|
+
* @param {MultiInstancePrototypeGetObjectsContext} ctx -
|
|
140
|
+
*/
|
|
141
|
+
static async getMultiInstanceProperty(clazz, ctx) {
|
|
142
|
+
const metadata = MetadataUtil.getOwnMetaData(PrototypeUtil.MULTI_INSTANCE_PROTOTYPE_STATIC_PROPERTY, clazz);
|
|
143
|
+
if (metadata) return metadata;
|
|
144
|
+
const callBackMetadata = MetadataUtil.getOwnMetaData(PrototypeUtil.MULTI_INSTANCE_PROTOTYPE_CALLBACK_PROPERTY, clazz);
|
|
145
|
+
if (callBackMetadata) {
|
|
146
|
+
const objects = await callBackMetadata.getObjects(ctx);
|
|
147
|
+
const defaultQualifier = [{
|
|
148
|
+
attribute: InitTypeQualifierAttribute,
|
|
149
|
+
value: callBackMetadata.initType
|
|
150
|
+
}, {
|
|
151
|
+
attribute: LoadUnitNameQualifierAttribute,
|
|
152
|
+
value: ctx.moduleName
|
|
153
|
+
}];
|
|
154
|
+
for (const object of objects) defaultQualifier.forEach((qualifier) => {
|
|
155
|
+
if (!object.qualifiers.find((t) => t.attribute === qualifier.attribute)) object.qualifiers.push(qualifier);
|
|
156
|
+
});
|
|
157
|
+
return {
|
|
158
|
+
...callBackMetadata,
|
|
159
|
+
objects
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
static setMultiInstanceConstructorAttributes(clazz, attributes) {
|
|
164
|
+
MetadataUtil.defineMetaData(PrototypeUtil.MULTI_INSTANCE_CONSTRUCTOR_ATTRIBUTES, attributes, clazz);
|
|
165
|
+
}
|
|
166
|
+
static getMultiInstanceConstructorAttributes(clazz) {
|
|
167
|
+
return MetadataUtil.getMetaData(PrototypeUtil.MULTI_INSTANCE_CONSTRUCTOR_ATTRIBUTES, clazz) || [];
|
|
168
|
+
}
|
|
169
|
+
static setMultiInstanceConstructorIndex(clazz, index) {
|
|
170
|
+
MetadataUtil.defineMetaData(PrototypeUtil.MULTI_INSTANCE_CONSTRUCTOR_INDEX, index, clazz);
|
|
171
|
+
}
|
|
172
|
+
static getMultiInstanceConstructorIndex(clazz) {
|
|
173
|
+
return MetadataUtil.getMetaData(PrototypeUtil.MULTI_INSTANCE_CONSTRUCTOR_INDEX, clazz);
|
|
174
|
+
}
|
|
175
|
+
static setInjectType(clazz, type) {
|
|
176
|
+
const injectType = MetadataUtil.getMetaData(PrototypeUtil.INJECT_TYPE, clazz);
|
|
177
|
+
if (!injectType) MetadataUtil.defineMetaData(PrototypeUtil.INJECT_TYPE, type, clazz);
|
|
178
|
+
else if (injectType !== type) throw new Error(`class ${clazz.name} already use inject type ${injectType} can not use ${type}`);
|
|
179
|
+
}
|
|
180
|
+
static addInjectObject(clazz, injectObject) {
|
|
181
|
+
const objs = MetadataUtil.initOwnArrayMetaData(PrototypeUtil.INJECT_OBJECT_NAME_SET, clazz, []);
|
|
182
|
+
objs.push(injectObject);
|
|
183
|
+
MetadataUtil.defineMetaData(PrototypeUtil.INJECT_OBJECT_NAME_SET, objs, clazz);
|
|
184
|
+
}
|
|
185
|
+
static addInjectConstructor(clazz, injectConstructorInfo) {
|
|
186
|
+
const objs = MetadataUtil.initArrayMetaData(PrototypeUtil.INJECT_CONSTRUCTOR_NAME_SET, clazz, []);
|
|
187
|
+
objs.push(injectConstructorInfo);
|
|
188
|
+
MetadataUtil.defineMetaData(PrototypeUtil.INJECT_CONSTRUCTOR_NAME_SET, objs, clazz);
|
|
189
|
+
}
|
|
190
|
+
static getInjectType(clazz) {
|
|
191
|
+
return MetadataUtil.getMetaData(PrototypeUtil.INJECT_TYPE, clazz);
|
|
192
|
+
}
|
|
193
|
+
static getInjectObjects(clazz) {
|
|
194
|
+
const injectType = MetadataUtil.getMetaData(PrototypeUtil.INJECT_TYPE, clazz);
|
|
195
|
+
if (!injectType) return [];
|
|
196
|
+
if (injectType === InjectType.CONSTRUCTOR) return MetadataUtil.getArrayMetaData(PrototypeUtil.INJECT_CONSTRUCTOR_NAME_SET, clazz).sort((a, b) => {
|
|
197
|
+
return a.refIndex - b.refIndex;
|
|
198
|
+
});
|
|
199
|
+
return MetadataUtil.getArrayMetaData(PrototypeUtil.INJECT_OBJECT_NAME_SET, clazz);
|
|
200
|
+
}
|
|
201
|
+
static getClazzProto(clazz) {
|
|
202
|
+
return MetadataUtil.getMetaData(PrototypeUtil.CLAZZ_PROTO, clazz);
|
|
203
|
+
}
|
|
204
|
+
static setClazzProto(clazz, proto) {
|
|
205
|
+
MetadataUtil.defineMetaData(PrototypeUtil.CLAZZ_PROTO, proto, clazz);
|
|
206
|
+
}
|
|
207
|
+
static getDesignType(clazz, propKey) {
|
|
208
|
+
return MetadataUtil.getMetaData("design:type", clazz, propKey);
|
|
209
|
+
}
|
|
210
|
+
static getDesignParamtypes(clazz, propKey) {
|
|
211
|
+
return MetadataUtil.getMetaData("design:paramtypes", clazz, propKey);
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
//#endregion
|
|
216
|
+
export { PrototypeUtil };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EggProtoImplClass, QualifierAttribute, QualifierInfo, QualifierValue } from "@eggjs/tegg-types";
|
|
2
|
+
|
|
3
|
+
//#region src/util/QualifierUtil.d.ts
|
|
4
|
+
declare class QualifierUtil {
|
|
5
|
+
static addProtoQualifier(clazz: EggProtoImplClass, attribute: QualifierAttribute, value: QualifierValue): void;
|
|
6
|
+
static getProtoQualifiers(clazz: EggProtoImplClass): QualifierInfo[];
|
|
7
|
+
static addInjectQualifier(clazz: EggProtoImplClass, property: PropertyKey | undefined, parameterIndex: number | undefined, attribute: QualifierAttribute, value: QualifierValue): void;
|
|
8
|
+
static addProperQualifier(clazz: EggProtoImplClass, property: PropertyKey, attribute: QualifierAttribute, value: QualifierValue): void;
|
|
9
|
+
static getProperQualifiers(clazz: EggProtoImplClass, property: PropertyKey): QualifierInfo[];
|
|
10
|
+
static getQualifierValue(clazz: EggProtoImplClass, attribute: QualifierAttribute): QualifierValue | undefined;
|
|
11
|
+
static getProperQualifier(clazz: EggProtoImplClass, property: PropertyKey, attribute: QualifierAttribute): QualifierValue | undefined;
|
|
12
|
+
static matchQualifiers(clazzQualifiers: QualifierInfo[], requestQualifiers: QualifierInfo[]): boolean;
|
|
13
|
+
static equalQualifiers(clazzQualifiers: QualifierInfo[], requestQualifiers: QualifierInfo[]): boolean;
|
|
14
|
+
static mergeQualifiers(...qualifiers: QualifierInfo[][]): QualifierInfo[];
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { QualifierUtil };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { MetadataUtil } from "./MetadataUtil.js";
|
|
2
|
+
import { PROPERTY_QUALIFIER_META_DATA, QUALIFIER_META_DATA } from "@eggjs/tegg-types";
|
|
3
|
+
import { MapUtil, ObjectUtils } from "@eggjs/tegg-common-util";
|
|
4
|
+
|
|
5
|
+
//#region src/util/QualifierUtil.ts
|
|
6
|
+
var QualifierUtil = class QualifierUtil {
|
|
7
|
+
static addProtoQualifier(clazz, attribute, value) {
|
|
8
|
+
MetadataUtil.initOwnMapMetaData(QUALIFIER_META_DATA, clazz, /* @__PURE__ */ new Map()).set(attribute, value);
|
|
9
|
+
}
|
|
10
|
+
static getProtoQualifiers(clazz) {
|
|
11
|
+
const qualifiers = MetadataUtil.getMetaData(QUALIFIER_META_DATA, clazz);
|
|
12
|
+
if (!qualifiers) return [];
|
|
13
|
+
const res = [];
|
|
14
|
+
for (const [attribute, value] of qualifiers) res.push({
|
|
15
|
+
attribute,
|
|
16
|
+
value
|
|
17
|
+
});
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
static addInjectQualifier(clazz, property, parameterIndex, attribute, value) {
|
|
21
|
+
if (typeof parameterIndex === "number") {
|
|
22
|
+
const argName = ObjectUtils.getConstructorArgNameList(clazz)[parameterIndex];
|
|
23
|
+
QualifierUtil.addProperQualifier(clazz, argName, attribute, value);
|
|
24
|
+
} else QualifierUtil.addProperQualifier(clazz.constructor, property, attribute, value);
|
|
25
|
+
}
|
|
26
|
+
static addProperQualifier(clazz, property, attribute, value) {
|
|
27
|
+
const properQualifiers = MetadataUtil.initOwnMapMetaData(PROPERTY_QUALIFIER_META_DATA, clazz, /* @__PURE__ */ new Map());
|
|
28
|
+
MapUtil.getOrStore(properQualifiers, property, /* @__PURE__ */ new Map()).set(attribute, value);
|
|
29
|
+
}
|
|
30
|
+
static getProperQualifiers(clazz, property) {
|
|
31
|
+
const qualifiers = MetadataUtil.getMetaData(PROPERTY_QUALIFIER_META_DATA, clazz)?.get(property);
|
|
32
|
+
if (!qualifiers) return [];
|
|
33
|
+
const res = [];
|
|
34
|
+
for (const [attribute, value] of qualifiers) res.push({
|
|
35
|
+
attribute,
|
|
36
|
+
value
|
|
37
|
+
});
|
|
38
|
+
return res;
|
|
39
|
+
}
|
|
40
|
+
static getQualifierValue(clazz, attribute) {
|
|
41
|
+
return MetadataUtil.getMetaData(QUALIFIER_META_DATA, clazz)?.get(attribute);
|
|
42
|
+
}
|
|
43
|
+
static getProperQualifier(clazz, property, attribute) {
|
|
44
|
+
return (MetadataUtil.getMetaData(PROPERTY_QUALIFIER_META_DATA, clazz)?.get(property))?.get(attribute);
|
|
45
|
+
}
|
|
46
|
+
static matchQualifiers(clazzQualifiers, requestQualifiers) {
|
|
47
|
+
for (const request of requestQualifiers) if (!clazzQualifiers.find((t) => t.attribute === request.attribute && t.value === request.value)) return false;
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
static equalQualifiers(clazzQualifiers, requestQualifiers) {
|
|
51
|
+
if (clazzQualifiers.length !== requestQualifiers.length) return false;
|
|
52
|
+
return QualifierUtil.matchQualifiers(clazzQualifiers, requestQualifiers);
|
|
53
|
+
}
|
|
54
|
+
static mergeQualifiers(...qualifiers) {
|
|
55
|
+
const result = [];
|
|
56
|
+
const temp = {};
|
|
57
|
+
for (const qualifierList of qualifiers) for (const { attribute, value } of qualifierList) temp[attribute] = value;
|
|
58
|
+
for (const key of Reflect.ownKeys(temp)) result.push({
|
|
59
|
+
attribute: key,
|
|
60
|
+
value: temp[key]
|
|
61
|
+
});
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
//#endregion
|
|
67
|
+
export { QualifierUtil };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/core-decorator",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.5",
|
|
4
4
|
"description": "tegg core decorator",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
@@ -10,24 +10,15 @@
|
|
|
10
10
|
],
|
|
11
11
|
"type": "module",
|
|
12
12
|
"exports": {
|
|
13
|
-
".":
|
|
14
|
-
|
|
15
|
-
"default": "./src/index.js"
|
|
16
|
-
}
|
|
13
|
+
".": "./dist/index.js",
|
|
14
|
+
"./package.json": "./package.json"
|
|
17
15
|
},
|
|
18
16
|
"files": [
|
|
19
|
-
"
|
|
20
|
-
"src/**/*.d.ts"
|
|
17
|
+
"dist"
|
|
21
18
|
],
|
|
22
|
-
"scripts": {
|
|
23
|
-
"clean": "tsc -b --clean",
|
|
24
|
-
"tsc": "npm run clean && tsc -p ./tsconfig.json",
|
|
25
|
-
"tsc:pub": "npm run tsc",
|
|
26
|
-
"prepublishOnly": "npm run tsc"
|
|
27
|
-
},
|
|
28
19
|
"author": "killagu <killa123@126.com>",
|
|
29
20
|
"license": "MIT",
|
|
30
|
-
"homepage": "https://github.com/eggjs/tegg",
|
|
21
|
+
"homepage": "https://github.com/eggjs/tegg/tree/next/core/core-decorator",
|
|
31
22
|
"bugs": {
|
|
32
23
|
"url": "https://github.com/eggjs/tegg/issues"
|
|
33
24
|
},
|
|
@@ -37,20 +28,27 @@
|
|
|
37
28
|
"directory": "core/core-decorator"
|
|
38
29
|
},
|
|
39
30
|
"engines": {
|
|
40
|
-
"node": ">=
|
|
41
|
-
},
|
|
42
|
-
"dependencies": {
|
|
43
|
-
"@eggjs/tegg-common-util": "^4.0.0-beta.3",
|
|
44
|
-
"@eggjs/tegg-types": "^4.0.0-beta.3",
|
|
45
|
-
"reflect-metadata": "^0.2.2"
|
|
31
|
+
"node": ">=22.18.0"
|
|
46
32
|
},
|
|
47
33
|
"publishConfig": {
|
|
48
34
|
"access": "public"
|
|
49
35
|
},
|
|
50
|
-
"
|
|
51
|
-
"@
|
|
52
|
-
"
|
|
53
|
-
"typescript": "5"
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@eggjs/tegg-common-util": "4.0.0-beta.5",
|
|
38
|
+
"@eggjs/tegg-types": "4.0.0-beta.5"
|
|
54
39
|
},
|
|
55
|
-
"
|
|
56
|
-
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@types/node": "^22.10.5",
|
|
42
|
+
"typescript": "^5.9.3",
|
|
43
|
+
"tsdown": "^0.15.6",
|
|
44
|
+
"unplugin-unused": "^0.5.3"
|
|
45
|
+
},
|
|
46
|
+
"main": "./dist/index.js",
|
|
47
|
+
"module": "./dist/index.js",
|
|
48
|
+
"types": "./dist/index.d.ts",
|
|
49
|
+
"scripts": {
|
|
50
|
+
"clean": "rimraf dist",
|
|
51
|
+
"build": "tsdown",
|
|
52
|
+
"typecheck": "tsc --noEmit"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function ConfigSourceQualifier(moduleName: string): (target: any, propertyKey?: PropertyKey, parameterIndex?: number) => void;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ConfigSourceQualifierAttribute } from '@eggjs/tegg-types';
|
|
2
|
-
import { QualifierUtil } from '../util/index.js';
|
|
3
|
-
export function ConfigSourceQualifier(moduleName) {
|
|
4
|
-
return function (target, propertyKey, parameterIndex) {
|
|
5
|
-
QualifierUtil.addInjectQualifier(target, propertyKey, parameterIndex, ConfigSourceQualifierAttribute, moduleName);
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnU291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ29uZmlnU291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsVUFBa0I7SUFDdEQsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF5QixFQUFFLGNBQXVCO1FBQzdFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxNQUEyQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekksQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { AccessLevel, ObjectInitType } from '@eggjs/tegg-types';
|
|
2
|
-
import { Prototype } from './Prototype.js';
|
|
3
|
-
export function ContextProto(params) {
|
|
4
|
-
return Prototype({
|
|
5
|
-
initType: ObjectInitType.CONTEXT,
|
|
6
|
-
accessLevel: params?.accessLevel || AccessLevel.PRIVATE,
|
|
7
|
-
...params,
|
|
8
|
-
});
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dFByb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ29udGV4dFByb3RvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBMkI7SUFDdEQsT0FBTyxTQUFTLENBQUM7UUFDZixRQUFRLEVBQUUsY0FBYyxDQUFDLE9BQU87UUFDaEMsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLElBQUksV0FBVyxDQUFDLE9BQU87UUFDdkQsR0FBRyxNQUFNO0tBQ1YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { EggQualifierAttribute } from '@eggjs/tegg-types';
|
|
2
|
-
import { QualifierUtil } from '../util/index.js';
|
|
3
|
-
export function EggQualifier(eggType) {
|
|
4
|
-
return function (target, propertyKey, parameterIndex) {
|
|
5
|
-
QualifierUtil.addInjectQualifier(target, propertyKey, parameterIndex, EggQualifierAttribute, eggType);
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnUXVhbGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRWdnUXVhbGlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQWdCO0lBQzNDLE9BQU8sVUFBUyxNQUFXLEVBQUUsV0FBeUIsRUFBRSxjQUF1QjtRQUM3RSxhQUFhLENBQUMsa0JBQWtCLENBQUMsTUFBMkIsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdILENBQUMsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { InitTypeQualifierAttribute } from '@eggjs/tegg-types';
|
|
2
|
-
import { QualifierUtil } from '../util/index.js';
|
|
3
|
-
export function InitTypeQualifier(initType) {
|
|
4
|
-
return function (target, propertyKey, parameterIndex) {
|
|
5
|
-
QualifierUtil.addInjectQualifier(target, propertyKey, parameterIndex, InitTypeQualifierAttribute, initType);
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5pdFR5cGVRdWFsaWZpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJJbml0VHlwZVF1YWxpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFFBQTRCO0lBQzVELE9BQU8sVUFBUyxNQUFXLEVBQUUsV0FBeUIsRUFBRSxjQUF1QjtRQUM3RSxhQUFhLENBQUMsa0JBQWtCLENBQUMsTUFBMkIsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLDBCQUEwQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ25JLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectParams } from '@eggjs/tegg-types';
|
|
2
|
-
export declare function Inject(param?: InjectParams | string): (target: any, propertyKey?: PropertyKey, parameterIndex?: number) => void;
|
|
3
|
-
export declare function InjectOptional(param?: Omit<InjectParams, 'optional'> | string): (target: any, propertyKey?: PropertyKey, parameterIndex?: number) => void;
|
package/src/decorator/Inject.js
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { InjectType, InitTypeQualifierAttribute, } from '@eggjs/tegg-types';
|
|
2
|
-
import { ObjectUtils } from '@eggjs/tegg-common-util';
|
|
3
|
-
import { PrototypeUtil, QualifierUtil } from '../util/index.js';
|
|
4
|
-
function guessInjectInfo(clazz, name, proto) {
|
|
5
|
-
let objName;
|
|
6
|
-
let initType;
|
|
7
|
-
if (typeof proto === 'function' && proto !== Object) {
|
|
8
|
-
// if property type is function and not Object( means maybe proto class ), then try to read EggPrototypeInfo.name as obj name
|
|
9
|
-
const info = PrototypeUtil.getProperty(proto);
|
|
10
|
-
objName = info?.name;
|
|
11
|
-
// try to read EggPrototypeInfo.initType as qualifier
|
|
12
|
-
if (info?.initType) {
|
|
13
|
-
const customInitType = QualifierUtil.getProperQualifier(clazz, name, InitTypeQualifierAttribute);
|
|
14
|
-
if (!customInitType) {
|
|
15
|
-
initType = info.initType;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return {
|
|
20
|
-
objName,
|
|
21
|
-
initType,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
export function Inject(param) {
|
|
25
|
-
const injectParam = typeof param === 'string' ? { name: param } : param;
|
|
26
|
-
function propertyInject(target, propertyKey) {
|
|
27
|
-
let objName;
|
|
28
|
-
let initType;
|
|
29
|
-
if (!injectParam) {
|
|
30
|
-
// try to read design:type from proto
|
|
31
|
-
const proto = PrototypeUtil.getDesignType(target, propertyKey);
|
|
32
|
-
({ objName, initType } = guessInjectInfo(target.constructor, propertyKey, proto));
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
// params allow string or object
|
|
36
|
-
objName = injectParam?.name;
|
|
37
|
-
}
|
|
38
|
-
const injectObject = {
|
|
39
|
-
refName: propertyKey,
|
|
40
|
-
objName: objName || propertyKey,
|
|
41
|
-
};
|
|
42
|
-
if (injectParam?.optional) {
|
|
43
|
-
injectObject.optional = true;
|
|
44
|
-
}
|
|
45
|
-
PrototypeUtil.setInjectType(target.constructor, InjectType.PROPERTY);
|
|
46
|
-
PrototypeUtil.addInjectObject(target.constructor, injectObject);
|
|
47
|
-
if (initType) {
|
|
48
|
-
QualifierUtil.addProperQualifier(target.constructor, propertyKey, InitTypeQualifierAttribute, initType);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
function constructorInject(target, parameterIndex) {
|
|
52
|
-
const argNames = ObjectUtils.getConstructorArgNameList(target);
|
|
53
|
-
const argName = argNames[parameterIndex];
|
|
54
|
-
let objName;
|
|
55
|
-
let initType;
|
|
56
|
-
if (!injectParam) {
|
|
57
|
-
// try to read proto from design:paramtypes
|
|
58
|
-
const protos = PrototypeUtil.getDesignParamtypes(target);
|
|
59
|
-
({ objName, initType } = guessInjectInfo(target, argName, protos?.[parameterIndex]));
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
// params allow string or object
|
|
63
|
-
objName = injectParam?.name;
|
|
64
|
-
}
|
|
65
|
-
const injectObject = {
|
|
66
|
-
refIndex: parameterIndex,
|
|
67
|
-
refName: argName,
|
|
68
|
-
objName: objName || argName,
|
|
69
|
-
};
|
|
70
|
-
if (injectParam?.optional) {
|
|
71
|
-
injectObject.optional = true;
|
|
72
|
-
}
|
|
73
|
-
PrototypeUtil.setInjectType(target, InjectType.CONSTRUCTOR);
|
|
74
|
-
PrototypeUtil.addInjectConstructor(target, injectObject);
|
|
75
|
-
if (initType) {
|
|
76
|
-
QualifierUtil.addProperQualifier(target, argName, InitTypeQualifierAttribute, initType);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return function (target, propertyKey, parameterIndex) {
|
|
80
|
-
if (typeof parameterIndex === 'undefined') {
|
|
81
|
-
propertyInject(target, propertyKey);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
constructorInject(target, parameterIndex);
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
export function InjectOptional(param) {
|
|
89
|
-
const injectParam = typeof param === 'string' ? { name: param } : param;
|
|
90
|
-
return Inject({
|
|
91
|
-
...injectParam,
|
|
92
|
-
optional: true,
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiSW5qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLTCxVQUFVLEVBQ1YsMEJBQTBCLEdBQzNCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEUsU0FBUyxlQUFlLENBQUMsS0FBd0IsRUFBRSxJQUFpQixFQUFFLEtBQVU7SUFDOUUsSUFBSSxPQUFnQyxDQUFDO0lBQ3JDLElBQUksUUFBNEIsQ0FBQztJQUVqQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDcEQsNkhBQTZIO1FBQzdILE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBMEIsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sR0FBRyxJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQ3JCLHFEQUFxRDtRQUNyRCxJQUFJLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUNuQixNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1lBQ2pHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDcEIsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU87UUFDUCxRQUFRO0tBQ1QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQTZCO0lBQ2xELE1BQU0sV0FBVyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMs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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function ModuleQualifier(moduleName: string): (target: any, propertyKey?: PropertyKey, parameterIndex?: number) => void;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { LoadUnitNameQualifierAttribute } from '@eggjs/tegg-types';
|
|
2
|
-
import { QualifierUtil } from '../util/index.js';
|
|
3
|
-
export function ModuleQualifier(moduleName) {
|
|
4
|
-
return function (target, propertyKey, parameterIndex) {
|
|
5
|
-
QualifierUtil.addInjectQualifier(target, propertyKey, parameterIndex, LoadUnitNameQualifierAttribute, moduleName);
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlUXVhbGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTW9kdWxlUXVhbGlmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFVBQWtCO0lBQ2hELE9BQU8sVUFBUyxNQUFXLEVBQUUsV0FBeUIsRUFBRSxjQUF1QjtRQUM3RSxhQUFhLENBQUMsa0JBQWtCLENBQUMsTUFBMkIsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLDhCQUE4QixFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3pJLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { PrototypeUtil } from '../util/index.js';
|
|
2
|
-
export function MultiInstanceInfo(attributes) {
|
|
3
|
-
return function (target, _propertyKey, parameterIndex) {
|
|
4
|
-
PrototypeUtil.setMultiInstanceConstructorIndex(target, parameterIndex);
|
|
5
|
-
PrototypeUtil.setMultiInstanceConstructorAttributes(target, attributes);
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlJbnN0YW5jZUluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJNdWx0aUluc3RhbmNlSW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFVBQWdDO0lBQ2hFLE9BQU8sVUFBUyxNQUFXLEVBQUUsWUFBcUMsRUFBRSxjQUFzQjtRQUN4RixhQUFhLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLGFBQWEsQ0FBQyxxQ0FBcUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { ObjectInitType, AccessLevel, DEFAULT_PROTO_IMPL_TYPE } from '@eggjs/tegg-types';
|
|
2
|
-
import { StackUtil } from '@eggjs/tegg-common-util';
|
|
3
|
-
import { PrototypeUtil } from '../util/index.js';
|
|
4
|
-
const DEFAULT_PARAMS = {
|
|
5
|
-
initType: ObjectInitType.SINGLETON,
|
|
6
|
-
accessLevel: AccessLevel.PRIVATE,
|
|
7
|
-
protoImplType: DEFAULT_PROTO_IMPL_TYPE,
|
|
8
|
-
};
|
|
9
|
-
export function MultiInstanceProto(param) {
|
|
10
|
-
return function (clazz) {
|
|
11
|
-
PrototypeUtil.setIsEggMultiInstancePrototype(clazz);
|
|
12
|
-
if (param.objects) {
|
|
13
|
-
const property = {
|
|
14
|
-
...DEFAULT_PARAMS,
|
|
15
|
-
...param,
|
|
16
|
-
className: clazz.name,
|
|
17
|
-
};
|
|
18
|
-
PrototypeUtil.setMultiInstanceStaticProperty(clazz, property);
|
|
19
|
-
}
|
|
20
|
-
else if (param.getObjects) {
|
|
21
|
-
const property = {
|
|
22
|
-
...DEFAULT_PARAMS,
|
|
23
|
-
...param,
|
|
24
|
-
className: clazz.name,
|
|
25
|
-
};
|
|
26
|
-
PrototypeUtil.setMultiInstanceCallbackProperty(clazz, property);
|
|
27
|
-
}
|
|
28
|
-
// './tegg/core/common-util/src/StackUtil.ts',
|
|
29
|
-
// './tegg/core/core-decorator/src/decorator/Prototype.ts',
|
|
30
|
-
// './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
|
|
31
|
-
// './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
|
|
32
|
-
// './tegg/core/core-decorator/test/fixtures/decators/CacheService.ts',
|
|
33
|
-
PrototypeUtil.setFilePath(clazz, StackUtil.getCalleeFromStack(false, 4));
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlJbnN0YW5jZVByb3RvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTXVsdGlJbnN0YW5jZVByb3RvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFTekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLGNBQWMsR0FBRztJQUNyQixRQUFRLEVBQUUsY0FBYyxDQUFDLFNBQVM7SUFDbEMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxPQUFPO0lBQ2hDLGFBQWEsRUFBRSx1QkFBdUI7Q0FDdkMsQ0FBQztBQUVGLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFtQztJQUNwRSxPQUFPLFVBQVMsS0FBd0I7UUFDdEMsYUFBYSxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUssS0FBNEMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxRCxNQUFNLFFBQVEsR0FBa0M7Z0JBQzlDLEdBQUcsY0FBYztnQkFDakIsR0FBRyxLQUEyQztnQkFDOUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJO2FBQ3RCLENBQUM7WUFDRixhQUFhLENBQUMsOEJBQThCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7YUFBTSxJQUFLLEtBQThDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEUsTUFBTSxRQUFRLEdBQTBDO2dCQUN0RCxHQUFHLGNBQWM7Z0JBQ2pCLEdBQUcsS0FBNkM7Z0JBQ2hELFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSTthQUN0QixDQUFDO1lBQ0YsYUFBYSxDQUFDLGdDQUFnQyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBRUQsOENBQThDO1FBQzlDLDJEQUEyRDtRQUMzRCxrR0FBa0c7UUFDbEcsa0dBQWtHO1FBQ2xHLHVFQUF1RTtRQUN2RSxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
|