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