@eggjs/metadata 4.0.0-beta.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/LICENSE +21 -0
- package/README.md +17 -0
- package/dist/errors.d.ts +14 -0
- package/dist/errors.js +27 -0
- package/dist/factory/EggPrototypeCreatorFactory.d.ts +9 -0
- package/dist/factory/EggPrototypeCreatorFactory.js +111 -0
- package/dist/factory/EggPrototypeFactory.d.ts +9 -0
- package/dist/factory/EggPrototypeFactory.js +52 -0
- package/dist/factory/LoadUnitFactory.d.ts +12 -0
- package/dist/factory/LoadUnitFactory.js +59 -0
- package/dist/factory/index.d.ts +3 -0
- package/dist/factory/index.js +4 -0
- package/dist/impl/EggPrototypeBuilder.d.ts +22 -0
- package/dist/impl/EggPrototypeBuilder.js +129 -0
- package/dist/impl/EggPrototypeImpl.d.ts +24 -0
- package/dist/impl/EggPrototypeImpl.js +53 -0
- package/dist/impl/LoadUnitMultiInstanceProtoHook.d.ts +7 -0
- package/dist/impl/LoadUnitMultiInstanceProtoHook.js +18 -0
- package/dist/impl/ModuleLoadUnit.d.ts +35 -0
- package/dist/impl/ModuleLoadUnit.js +264 -0
- package/dist/impl/index.d.ts +4 -0
- package/dist/impl/index.js +5 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +7 -0
- package/dist/model/AppGraph.d.ts +39 -0
- package/dist/model/AppGraph.js +257 -0
- package/dist/model/EggPrototype.d.ts +3 -0
- package/dist/model/EggPrototype.js +3 -0
- package/dist/model/LoadUnit.d.ts +3 -0
- package/dist/model/LoadUnit.js +3 -0
- package/dist/model/ModuleDescriptor.d.ts +18 -0
- package/dist/model/ModuleDescriptor.js +47 -0
- package/dist/model/ProtoDescriptor/AbstractProtoDescriptor.d.ts +32 -0
- package/dist/model/ProtoDescriptor/AbstractProtoDescriptor.js +31 -0
- package/dist/model/ProtoDescriptor/ClassProtoDescriptor.d.ts +12 -0
- package/dist/model/ProtoDescriptor/ClassProtoDescriptor.js +30 -0
- package/dist/model/ProtoDescriptor/index.d.ts +2 -0
- package/dist/model/ProtoDescriptor/index.js +3 -0
- package/dist/model/ProtoDescriptorHelper.d.ts +26 -0
- package/dist/model/ProtoDescriptorHelper.js +129 -0
- package/dist/model/graph/GlobalGraph.d.ts +63 -0
- package/dist/model/graph/GlobalGraph.js +240 -0
- package/dist/model/graph/GlobalModuleNode.d.ts +25 -0
- package/dist/model/graph/GlobalModuleNode.js +38 -0
- package/dist/model/graph/GlobalModuleNodeBuilder.d.ts +13 -0
- package/dist/model/graph/GlobalModuleNodeBuilder.js +54 -0
- package/dist/model/graph/ProtoNode.d.ts +19 -0
- package/dist/model/graph/ProtoNode.js +40 -0
- package/dist/model/graph/ProtoSelector.d.ts +6 -0
- package/dist/model/graph/ProtoSelector.js +2 -0
- package/dist/model/graph/index.d.ts +5 -0
- package/dist/model/graph/index.js +6 -0
- package/dist/model/index.d.ts +7 -0
- package/dist/model/index.js +8 -0
- package/dist/util/ClassUtil.d.ts +5 -0
- package/dist/util/ClassUtil.js +17 -0
- package/dist/util/index.d.ts +1 -0
- package/dist/util/index.js +2 -0
- package/package.json +59 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import util from 'node:util';
|
|
3
|
+
import { Graph, GraphNode, ModuleConfigUtil } from '@eggjs/tegg-common-util';
|
|
4
|
+
import { PrototypeUtil, QualifierUtil } from '@eggjs/core-decorator';
|
|
5
|
+
import { AccessLevel, INIT_TYPE_TRY_ORDER, InitTypeQualifierAttribute, LoadUnitNameQualifierAttribute, } from '@eggjs/tegg-types';
|
|
6
|
+
function verifyQualifier(clazzQualifiers, qualifier) {
|
|
7
|
+
const selfQualifiers = clazzQualifiers.find((t) => t.attribute === qualifier.attribute);
|
|
8
|
+
return selfQualifiers?.value === qualifier.value;
|
|
9
|
+
}
|
|
10
|
+
function verifyQualifiers(clazzQualifiers, qualifiers) {
|
|
11
|
+
for (const qualifier of qualifiers) {
|
|
12
|
+
if (!verifyQualifier(clazzQualifiers, qualifier)) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
export class ClazzMap {
|
|
19
|
+
clazzMap;
|
|
20
|
+
graph;
|
|
21
|
+
constructor(graph) {
|
|
22
|
+
this.graph = graph;
|
|
23
|
+
}
|
|
24
|
+
async build() {
|
|
25
|
+
const graph = this.graph;
|
|
26
|
+
/**
|
|
27
|
+
* 1. iterate all module get all MultiInstanceClazz
|
|
28
|
+
* 2. iterate MultiInstanceClazz and all module get object meta
|
|
29
|
+
* 3. iterate object meta and build clazz map
|
|
30
|
+
*/
|
|
31
|
+
const clazzMap = {};
|
|
32
|
+
for (const ownerNode of graph.nodes.values()) {
|
|
33
|
+
for (const clazz of ownerNode.val.getClazzList()) {
|
|
34
|
+
const qualifiers = QualifierUtil.getProtoQualifiers(clazz);
|
|
35
|
+
if (PrototypeUtil.isEggMultiInstancePrototype(clazz)) {
|
|
36
|
+
for (const instanceNode of graph.nodes.values()) {
|
|
37
|
+
const property = await PrototypeUtil.getMultiInstanceProperty(clazz, {
|
|
38
|
+
unitPath: instanceNode.val.moduleConfig.path,
|
|
39
|
+
moduleName: instanceNode.val.moduleConfig.name,
|
|
40
|
+
});
|
|
41
|
+
assert(property, `multi instance property not found for ${clazz.name}`);
|
|
42
|
+
for (const info of property.objects) {
|
|
43
|
+
const instanceQualifiers = [...qualifiers, ...info.qualifiers];
|
|
44
|
+
clazzMap[info.name] = clazzMap[info.name] || [];
|
|
45
|
+
clazzMap[info.name].push({
|
|
46
|
+
name: info.name,
|
|
47
|
+
accessLevel: (await PrototypeUtil.getAccessLevel(clazz, {
|
|
48
|
+
unitPath: instanceNode.val.moduleConfig.path,
|
|
49
|
+
moduleName: instanceNode.val.moduleConfig.name,
|
|
50
|
+
})),
|
|
51
|
+
qualifiers: instanceQualifiers,
|
|
52
|
+
properQualifiers: info.properQualifiers || {},
|
|
53
|
+
instanceModule: instanceNode,
|
|
54
|
+
ownerModule: ownerNode,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
const property = PrototypeUtil.getProperty(clazz);
|
|
61
|
+
assert(property, `property not found for ${clazz.name}`);
|
|
62
|
+
clazzMap[property.name] = clazzMap[property.name] || [];
|
|
63
|
+
clazzMap[property.name].push({
|
|
64
|
+
name: property.name,
|
|
65
|
+
accessLevel: (await PrototypeUtil.getAccessLevel(clazz, {
|
|
66
|
+
unitPath: ownerNode.val.moduleConfig.path,
|
|
67
|
+
moduleName: ownerNode.val.moduleConfig.name,
|
|
68
|
+
})),
|
|
69
|
+
qualifiers,
|
|
70
|
+
properQualifiers: {},
|
|
71
|
+
ownerModule: ownerNode,
|
|
72
|
+
instanceModule: ownerNode,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
this.clazzMap = clazzMap;
|
|
78
|
+
}
|
|
79
|
+
findDependencyModule(objName, properQualifiers, intoModule) {
|
|
80
|
+
const result = new Set();
|
|
81
|
+
const objInfo = this.clazzMap[objName];
|
|
82
|
+
if (!objInfo) {
|
|
83
|
+
return [];
|
|
84
|
+
}
|
|
85
|
+
let mayObjs = objInfo.filter((obj) => {
|
|
86
|
+
// 1. check accessLevel
|
|
87
|
+
if (obj.instanceModule !== intoModule && obj.accessLevel === AccessLevel.PRIVATE) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
// 2. check qualifier
|
|
91
|
+
return verifyQualifiers(obj.qualifiers, properQualifiers);
|
|
92
|
+
});
|
|
93
|
+
// 3. auto set init type qualifier
|
|
94
|
+
if (mayObjs.length > 1) {
|
|
95
|
+
const initTypeQualifiers = INIT_TYPE_TRY_ORDER.map((type) => ({
|
|
96
|
+
attribute: InitTypeQualifierAttribute,
|
|
97
|
+
value: type,
|
|
98
|
+
}));
|
|
99
|
+
for (const initTypeQualifier of initTypeQualifiers) {
|
|
100
|
+
const mayInitTypeObjs = mayObjs.filter((obj) => {
|
|
101
|
+
return verifyQualifiers(obj.qualifiers, [...properQualifiers, initTypeQualifier]);
|
|
102
|
+
});
|
|
103
|
+
if (mayInitTypeObjs.length > 0) {
|
|
104
|
+
mayObjs = mayInitTypeObjs;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// 4. auto set load unit name qualifier
|
|
109
|
+
if (mayObjs.length > 1) {
|
|
110
|
+
const moduleNameQualifiers = {
|
|
111
|
+
attribute: LoadUnitNameQualifierAttribute,
|
|
112
|
+
value: intoModule.val.name,
|
|
113
|
+
};
|
|
114
|
+
const mayLoadUnitNameObjs = mayObjs.filter((obj) => {
|
|
115
|
+
return verifyQualifiers(obj.qualifiers, [...properQualifiers, moduleNameQualifiers]);
|
|
116
|
+
});
|
|
117
|
+
if (mayLoadUnitNameObjs.length > 0) {
|
|
118
|
+
mayObjs = mayLoadUnitNameObjs;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (mayObjs.length > 1) {
|
|
122
|
+
const message = util.format('multi class found for %s@%o in module %j', objName, properQualifiers, mayObjs.map((t) => {
|
|
123
|
+
return t.instanceModule.val.moduleConfig.path;
|
|
124
|
+
}));
|
|
125
|
+
throw new Error(message);
|
|
126
|
+
}
|
|
127
|
+
for (const obj of mayObjs) {
|
|
128
|
+
result.add(obj.instanceModule);
|
|
129
|
+
// result.add(obj.ownerModule);
|
|
130
|
+
}
|
|
131
|
+
return Array.from(result);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export class ModuleNode {
|
|
135
|
+
id;
|
|
136
|
+
name;
|
|
137
|
+
moduleConfig;
|
|
138
|
+
clazzList;
|
|
139
|
+
constructor(moduleConfig) {
|
|
140
|
+
this.moduleConfig = moduleConfig;
|
|
141
|
+
this.id = moduleConfig.path;
|
|
142
|
+
this.name = ModuleConfigUtil.readModuleNameSync(moduleConfig.path);
|
|
143
|
+
this.clazzList = [];
|
|
144
|
+
}
|
|
145
|
+
async addClazz(clazz) {
|
|
146
|
+
if (!this.clazzList.includes(clazz)) {
|
|
147
|
+
this.clazzList.push(clazz);
|
|
148
|
+
}
|
|
149
|
+
if (!PrototypeUtil.isEggMultiInstancePrototype(clazz)) {
|
|
150
|
+
const initTypeQualifierAttributeValue = await PrototypeUtil.getInitType(clazz, {
|
|
151
|
+
unitPath: this.moduleConfig.path,
|
|
152
|
+
moduleName: this.moduleConfig.name,
|
|
153
|
+
});
|
|
154
|
+
const defaultQualifier = [
|
|
155
|
+
{
|
|
156
|
+
attribute: InitTypeQualifierAttribute,
|
|
157
|
+
value: initTypeQualifierAttributeValue,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
attribute: LoadUnitNameQualifierAttribute,
|
|
161
|
+
value: this.name,
|
|
162
|
+
},
|
|
163
|
+
];
|
|
164
|
+
for (const qualifier of defaultQualifier) {
|
|
165
|
+
QualifierUtil.addProtoQualifier(clazz, qualifier.attribute, qualifier.value);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
toString() {
|
|
170
|
+
return `${this.name}@${this.moduleConfig.path}`;
|
|
171
|
+
}
|
|
172
|
+
getClazzList() {
|
|
173
|
+
return this.clazzList;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
export class AppGraph {
|
|
177
|
+
graph;
|
|
178
|
+
clazzMap;
|
|
179
|
+
moduleConfigList;
|
|
180
|
+
constructor() {
|
|
181
|
+
this.graph = new Graph();
|
|
182
|
+
}
|
|
183
|
+
addNode(moduleNode) {
|
|
184
|
+
if (!this.graph.addVertex(new GraphNode(moduleNode))) {
|
|
185
|
+
throw new Error(`duplicate module: ${moduleNode}`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
getClazzList() {
|
|
189
|
+
const clazzSet = new Set();
|
|
190
|
+
for (const node of this.graph.nodes.values()) {
|
|
191
|
+
for (const clazz of node.val.getClazzList()) {
|
|
192
|
+
clazzSet.add(clazz);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return Array.from(clazzSet);
|
|
196
|
+
}
|
|
197
|
+
async build() {
|
|
198
|
+
this.clazzMap = new ClazzMap(this.graph);
|
|
199
|
+
await this.clazzMap.build();
|
|
200
|
+
// 1. iterate all modules
|
|
201
|
+
for (const node of this.graph.nodes.values()) {
|
|
202
|
+
// 2. iterate all class
|
|
203
|
+
for (const clazz of node.val.getClazzList()) {
|
|
204
|
+
const injectObjects = PrototypeUtil.getInjectObjects(clazz);
|
|
205
|
+
// 3. iterate all inject objects
|
|
206
|
+
for (const injectObject of injectObjects) {
|
|
207
|
+
if (PrototypeUtil.isEggMultiInstancePrototype(clazz)) {
|
|
208
|
+
for (const instanceNode of this.graph.nodes.values()) {
|
|
209
|
+
const property = await PrototypeUtil.getMultiInstanceProperty(clazz, {
|
|
210
|
+
unitPath: instanceNode.val.moduleConfig.path,
|
|
211
|
+
moduleName: instanceNode.val.moduleConfig.name,
|
|
212
|
+
});
|
|
213
|
+
for (const info of property?.objects || []) {
|
|
214
|
+
const properQualifiers = [
|
|
215
|
+
...QualifierUtil.getProperQualifiers(clazz, injectObject.refName),
|
|
216
|
+
...(info.properQualifiers?.[injectObject.refName] ?? []),
|
|
217
|
+
];
|
|
218
|
+
// 4. find dependency module
|
|
219
|
+
const dependencyModules = this.clazzMap.findDependencyModule(injectObject.objName, properQualifiers, node);
|
|
220
|
+
for (const moduleNode of dependencyModules) {
|
|
221
|
+
// 5. add edge
|
|
222
|
+
if (instanceNode !== moduleNode) {
|
|
223
|
+
this.graph.addEdge(instanceNode, moduleNode);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
const properQualifiers = [...QualifierUtil.getProperQualifiers(clazz, injectObject.refName)];
|
|
231
|
+
// 4. find dependency module
|
|
232
|
+
const dependencyModules = this.clazzMap.findDependencyModule(injectObject.objName, properQualifiers, node);
|
|
233
|
+
for (const moduleNode of dependencyModules) {
|
|
234
|
+
// 5. add edge
|
|
235
|
+
if (node !== moduleNode) {
|
|
236
|
+
this.graph.addEdge(node, moduleNode);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
sort() {
|
|
245
|
+
const loopPath = this.graph.loopPath();
|
|
246
|
+
if (loopPath) {
|
|
247
|
+
throw new Error('module has recursive deps: ' + loopPath);
|
|
248
|
+
}
|
|
249
|
+
this.moduleConfigList = this.graph
|
|
250
|
+
.sort()
|
|
251
|
+
.filter((t) => {
|
|
252
|
+
return t.val.moduleConfig.optional !== true || t.fromNodeMap.size > 0;
|
|
253
|
+
})
|
|
254
|
+
.map((t) => t.val.moduleConfig);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwR3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwvQXBwR3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUU3QixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUNMLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzFCLDhCQUE4QixHQUMvQixNQUFNLG1CQUFtQixDQUFDO0FBb0IzQixTQUFTLGVBQWUsQ0FBQyxlQUFnQyxFQUFFLFNBQXdCO0lBQ2pGLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hGLE9BQU8sY0FBYyxFQUFFLEtBQUssS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDO0FBQ25ELENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLGVBQWdDLEVBQUUsVUFBMkI7SUFDckYsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2pELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLE9BQU8sUUFBUTtJQUNYLFFBQVEsQ0FBZTtJQUN2QixLQUFLLENBQW9CO0lBRWpDLFlBQVksS0FBd0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7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
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { LifecycleUtil } from '@eggjs/lifecycle';
|
|
2
|
+
export const EggPrototypeLifecycleUtil = new LifecycleUtil();
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnUHJvdG90eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGVsL0VnZ1Byb3RvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQThELElBQUksYUFBYSxFQUFFLENBQUMifQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { LifecycleUtil } from '@eggjs/lifecycle';
|
|
2
|
+
export const LoadUnitLifecycleUtil = new LifecycleUtil();
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZFVuaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwvTG9hZFVuaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2pELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFzRCxJQUFJLGFBQWEsRUFBRSxDQUFDIn0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type EggProtoImplClass, type ProtoDescriptor } from '@eggjs/tegg-types';
|
|
2
|
+
export interface ModuleDescriptor {
|
|
3
|
+
name: string;
|
|
4
|
+
unitPath: string;
|
|
5
|
+
optional?: boolean;
|
|
6
|
+
clazzList: EggProtoImplClass[];
|
|
7
|
+
multiInstanceClazzList: EggProtoImplClass[];
|
|
8
|
+
protos: ProtoDescriptor[];
|
|
9
|
+
}
|
|
10
|
+
export interface ModuleDumpOptions {
|
|
11
|
+
dumpDir?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class ModuleDescriptorDumper {
|
|
14
|
+
static stringifyDescriptor(moduleDescriptor: ModuleDescriptor): string;
|
|
15
|
+
static stringifyClazz(clazz: EggProtoImplClass, moduleDescriptor: ModuleDescriptor): string;
|
|
16
|
+
static dumpPath(desc: ModuleDescriptor, options?: ModuleDumpOptions): string;
|
|
17
|
+
static dump(desc: ModuleDescriptor, options?: ModuleDumpOptions): Promise<void>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import {} from '@eggjs/tegg-types';
|
|
4
|
+
import { PrototypeUtil } from '@eggjs/core-decorator';
|
|
5
|
+
const DUMP_PATH = process.env.MODULE_DUMP_PATH;
|
|
6
|
+
export class ModuleDescriptorDumper {
|
|
7
|
+
static stringifyDescriptor(moduleDescriptor) {
|
|
8
|
+
return ('{' +
|
|
9
|
+
`"name": "${moduleDescriptor.name}",` +
|
|
10
|
+
`"unitPath": "${moduleDescriptor.unitPath}",` +
|
|
11
|
+
(typeof moduleDescriptor.optional !== 'undefined' ? `"optional": ${moduleDescriptor.optional},` : '') +
|
|
12
|
+
`"clazzList": [${moduleDescriptor.clazzList
|
|
13
|
+
.map((t) => {
|
|
14
|
+
return ModuleDescriptorDumper.stringifyClazz(t, moduleDescriptor);
|
|
15
|
+
})
|
|
16
|
+
.join(',')}],` +
|
|
17
|
+
`"multiInstanceClazzList": [${moduleDescriptor.multiInstanceClazzList
|
|
18
|
+
.map((t) => {
|
|
19
|
+
return ModuleDescriptorDumper.stringifyClazz(t, moduleDescriptor);
|
|
20
|
+
})
|
|
21
|
+
.join(',')}],` +
|
|
22
|
+
`"protos": [${moduleDescriptor.protos
|
|
23
|
+
.map((t) => {
|
|
24
|
+
return JSON.stringify(t);
|
|
25
|
+
})
|
|
26
|
+
.join(',')}]` +
|
|
27
|
+
'}');
|
|
28
|
+
}
|
|
29
|
+
static stringifyClazz(clazz, moduleDescriptor) {
|
|
30
|
+
return ('{' +
|
|
31
|
+
`"name": "${clazz.name}",` +
|
|
32
|
+
(PrototypeUtil.getFilePath(clazz)
|
|
33
|
+
? `"filePath": "${path.relative(moduleDescriptor.unitPath, PrototypeUtil.getFilePath(clazz))}"`
|
|
34
|
+
: '') +
|
|
35
|
+
'}');
|
|
36
|
+
}
|
|
37
|
+
static dumpPath(desc, options) {
|
|
38
|
+
const dumpDir = DUMP_PATH ?? options?.dumpDir ?? desc.unitPath;
|
|
39
|
+
return path.join(dumpDir, '.egg', `${desc.name}_module_desc.json`);
|
|
40
|
+
}
|
|
41
|
+
static async dump(desc, options) {
|
|
42
|
+
const dumpPath = ModuleDescriptorDumper.dumpPath(desc, options);
|
|
43
|
+
await fs.mkdir(path.dirname(dumpPath), { recursive: true });
|
|
44
|
+
await fs.writeFile(dumpPath, ModuleDescriptorDumper.stringifyDescriptor(desc));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlRGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC9Nb2R1bGVEZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsQyxPQUFPLEVBQWdELE1BQU0sbUJBQW1CLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7QUFlL0MsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsZ0JBQWtDO1FBQzNELE9BQU8sQ0FDTCxHQUFHO1lBQ0gsWUFBWSxnQkFBZ0IsQ0FBQyxJQUFJLElBQUk7WUFDckMsZ0JBQWdCLGdCQUFnQixDQUFDLFFBQVEsSUFBSTtZQUM3QyxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsZUFBZSxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JHLGlCQUFpQixnQkFBZ0IsQ0FBQyxTQUFTO2lCQUN4QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDVCxPQUFPLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUNwRSxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJO1lBQ2hCLDhCQUE4QixnQkFBZ0IsQ0FBQyxzQkFBc0I7aUJBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNULE9BQU8sc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3BFLENBQUMsQ0FBQztpQkFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUk7WUFDaEIsY0FBYyxnQkFBZ0IsQ0FBQyxNQUFNO2lCQUNsQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDO2lCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRztZQUNmLEdBQUcsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBd0IsRUFBRSxnQkFBa0M7UUFDaEYsT0FBTyxDQUNMLEdBQUc7WUFDSCxZQUFZLEtBQUssQ0FBQyxJQUFJLElBQUk7WUFDMUIsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLGdCQUFnQixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBRSxDQUFDLEdBQUc7Z0JBQ2hHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDUCxHQUFHLENBQ0osQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQXNCLEVBQUUsT0FBMkI7UUFDakUsTUFBTSxPQUFPLEdBQUcsU0FBUyxJQUFJLE9BQU8sRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLG1CQUFtQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQXNCLEVBQUUsT0FBMkI7UUFDbkUsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { AccessLevel, type InjectObjectDescriptor, type ObjectInitTypeLike, type ProtoDescriptor, type ProtoDescriptorTypeLike, type QualifierInfo } from '@eggjs/tegg-types';
|
|
2
|
+
export interface AbstractProtoDescriptorOptions {
|
|
3
|
+
name: PropertyKey;
|
|
4
|
+
accessLevel: AccessLevel;
|
|
5
|
+
initType: ObjectInitTypeLike;
|
|
6
|
+
qualifiers: QualifierInfo[];
|
|
7
|
+
protoImplType: string;
|
|
8
|
+
injectObjects: InjectObjectDescriptor[];
|
|
9
|
+
defineModuleName: string;
|
|
10
|
+
defineUnitPath: string;
|
|
11
|
+
instanceModuleName: string;
|
|
12
|
+
instanceDefineUnitPath: string;
|
|
13
|
+
type: ProtoDescriptorTypeLike;
|
|
14
|
+
properQualifiers: Record<PropertyKey, QualifierInfo[]>;
|
|
15
|
+
}
|
|
16
|
+
export declare abstract class AbstractProtoDescriptor implements ProtoDescriptor {
|
|
17
|
+
name: PropertyKey;
|
|
18
|
+
accessLevel: AccessLevel;
|
|
19
|
+
initType: ObjectInitTypeLike;
|
|
20
|
+
qualifiers: QualifierInfo[];
|
|
21
|
+
injectObjects: InjectObjectDescriptor[];
|
|
22
|
+
protoImplType: string;
|
|
23
|
+
defineModuleName: string;
|
|
24
|
+
defineUnitPath: string;
|
|
25
|
+
instanceModuleName: string;
|
|
26
|
+
instanceDefineUnitPath: string;
|
|
27
|
+
className?: string;
|
|
28
|
+
properQualifiers: Record<PropertyKey, QualifierInfo[]>;
|
|
29
|
+
type: ProtoDescriptorTypeLike;
|
|
30
|
+
protected constructor(options: AbstractProtoDescriptorOptions);
|
|
31
|
+
abstract equal(protoDescriptor: ProtoDescriptor): boolean;
|
|
32
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { AccessLevel, } from '@eggjs/tegg-types';
|
|
2
|
+
export class AbstractProtoDescriptor {
|
|
3
|
+
name;
|
|
4
|
+
accessLevel;
|
|
5
|
+
initType;
|
|
6
|
+
qualifiers;
|
|
7
|
+
injectObjects;
|
|
8
|
+
protoImplType;
|
|
9
|
+
defineModuleName;
|
|
10
|
+
defineUnitPath;
|
|
11
|
+
instanceModuleName;
|
|
12
|
+
instanceDefineUnitPath;
|
|
13
|
+
className;
|
|
14
|
+
properQualifiers;
|
|
15
|
+
type;
|
|
16
|
+
constructor(options) {
|
|
17
|
+
this.name = options.name;
|
|
18
|
+
this.accessLevel = options.accessLevel;
|
|
19
|
+
this.initType = options.initType;
|
|
20
|
+
this.qualifiers = options.qualifiers;
|
|
21
|
+
this.protoImplType = options.protoImplType;
|
|
22
|
+
this.injectObjects = options.injectObjects;
|
|
23
|
+
this.defineModuleName = options.defineModuleName;
|
|
24
|
+
this.defineUnitPath = options.defineUnitPath;
|
|
25
|
+
this.instanceModuleName = options.instanceModuleName;
|
|
26
|
+
this.instanceDefineUnitPath = options.instanceDefineUnitPath;
|
|
27
|
+
this.type = options.type;
|
|
28
|
+
this.properQualifiers = options.properQualifiers;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RQcm90b0Rlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvUHJvdG9EZXNjcmlwdG9yL0Fic3RyYWN0UHJvdG9EZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEdBTVosTUFBTSxtQkFBbUIsQ0FBQztBQWlCM0IsTUFBTSxPQUFnQix1QkFBdUI7SUFDM0MsSUFBSSxDQUFjO0lBQ2xCLFdBQVcsQ0FBYztJQUN6QixRQUFRLENBQXFCO0lBQzdCLFVBQVUsQ0FBa0I7SUFDNUIsYUFBYSxDQUEyQjtJQUN4QyxhQUFhLENBQVM7SUFDdEIsZ0JBQWdCLENBQVM7SUFDekIsY0FBYyxDQUFTO0lBQ3ZCLGtCQUFrQixDQUFTO0lBQzNCLHNCQUFzQixDQUFTO0lBQy9CLFNBQVMsQ0FBVTtJQUNuQixnQkFBZ0IsQ0FBdUM7SUFDdkQsSUFBSSxDQUEwQjtJQUU5QixZQUFzQixPQUF1QztRQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUM3QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1FBQ3JELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUM7UUFDN0QsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7SUFDbkQsQ0FBQztDQUdGIn0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type EggProtoImplClass, type ProtoDescriptor } from '@eggjs/tegg-types';
|
|
2
|
+
import { AbstractProtoDescriptor, type AbstractProtoDescriptorOptions } from './AbstractProtoDescriptor.ts';
|
|
3
|
+
export interface ClassProtoDescriptorOptions extends Omit<AbstractProtoDescriptorOptions, 'type'> {
|
|
4
|
+
clazz: EggProtoImplClass;
|
|
5
|
+
}
|
|
6
|
+
export declare class ClassProtoDescriptor extends AbstractProtoDescriptor {
|
|
7
|
+
clazz: EggProtoImplClass;
|
|
8
|
+
clazzName: string;
|
|
9
|
+
static isClassProtoDescriptor(descriptor: ProtoDescriptor): descriptor is ClassProtoDescriptor;
|
|
10
|
+
constructor(options: ClassProtoDescriptorOptions);
|
|
11
|
+
equal(protoDescriptor: ProtoDescriptor): boolean;
|
|
12
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { QualifierUtil } from '@eggjs/core-decorator';
|
|
2
|
+
import { ProtoDescriptorType } from '@eggjs/tegg-types';
|
|
3
|
+
import { AbstractProtoDescriptor } from "./AbstractProtoDescriptor.js";
|
|
4
|
+
export class ClassProtoDescriptor extends AbstractProtoDescriptor {
|
|
5
|
+
clazz;
|
|
6
|
+
clazzName;
|
|
7
|
+
static isClassProtoDescriptor(descriptor) {
|
|
8
|
+
return descriptor.type === ProtoDescriptorType.CLASS;
|
|
9
|
+
}
|
|
10
|
+
constructor(options) {
|
|
11
|
+
super({
|
|
12
|
+
type: ProtoDescriptorType.CLASS,
|
|
13
|
+
...options,
|
|
14
|
+
});
|
|
15
|
+
this.clazz = options.clazz;
|
|
16
|
+
this.className = this.clazz.name;
|
|
17
|
+
}
|
|
18
|
+
equal(protoDescriptor) {
|
|
19
|
+
if (!ClassProtoDescriptor.isClassProtoDescriptor(protoDescriptor)) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
return (this.clazz === protoDescriptor.clazz &&
|
|
23
|
+
this.name === protoDescriptor.name &&
|
|
24
|
+
this.accessLevel === protoDescriptor.accessLevel &&
|
|
25
|
+
this.initType === protoDescriptor.initType &&
|
|
26
|
+
this.instanceModuleName === protoDescriptor.instanceModuleName &&
|
|
27
|
+
QualifierUtil.equalQualifiers(this.qualifiers, protoDescriptor.qualifiers));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3NQcm90b0Rlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvUHJvdG9EZXNjcmlwdG9yL0NsYXNzUHJvdG9EZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQWdELG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEcsT0FBTyxFQUFFLHVCQUF1QixFQUF1QyxNQUFNLDhCQUE4QixDQUFDO0FBTTVHLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx1QkFBdUI7SUFDL0QsS0FBSyxDQUFvQjtJQUN6QixTQUFTLENBQVM7SUFFbEIsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQTJCO1FBQ3ZELE9BQVEsVUFBc0MsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsS0FBSyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxZQUFZLE9BQW9DO1FBQzlDLEtBQUssQ0FBQztZQUNKLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxLQUFLO1lBQy9CLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZ0M7UUFDcEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDbEUsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxDQUNMLElBQUksQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLEtBQUs7WUFDcEMsSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsSUFBSTtZQUNsQyxJQUFJLENBQUMsV0FBVyxLQUFLLGVBQWUsQ0FBQyxXQUFXO1lBQ2hELElBQUksQ0FBQyxRQUFRLEtBQUssZUFBZSxDQUFDLFFBQVE7WUFDMUMsSUFBSSxDQUFDLGtCQUFrQixLQUFLLGVBQWUsQ0FBQyxrQkFBa0I7WUFDOUQsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FDM0UsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from "./AbstractProtoDescriptor.js";
|
|
2
|
+
export * from "./ClassProtoDescriptor.js";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvUHJvdG9EZXNjcmlwdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywyQkFBMkIsQ0FBQyJ9
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type EggProtoImplClass, type ObjectInitTypeLike, type ProtoDescriptor, type QualifierInfo, type MultiInstancePrototypeGetObjectsContext } from '@eggjs/tegg-types';
|
|
2
|
+
import { type ProtoSelectorContext } from './graph/index.ts';
|
|
3
|
+
export declare class ProtoDescriptorHelper {
|
|
4
|
+
#private;
|
|
5
|
+
static addDefaultQualifier(qualifiers: QualifierInfo[], initType: ObjectInitTypeLike, loadUnitName: string): QualifierInfo[];
|
|
6
|
+
static createByMultiInstanceClazz(clazz: EggProtoImplClass, options: {
|
|
7
|
+
defineModuleName: string;
|
|
8
|
+
defineUnitPath: string;
|
|
9
|
+
instanceModuleName: string;
|
|
10
|
+
instanceDefineUnitPath: string;
|
|
11
|
+
}): Promise<ProtoDescriptor[]>;
|
|
12
|
+
static createByDynamicMultiInstanceClazz(clazz: EggProtoImplClass, options: {
|
|
13
|
+
defineModuleName: string;
|
|
14
|
+
defineUnitPath: string;
|
|
15
|
+
instanceModuleName: string;
|
|
16
|
+
instanceDefineUnitPath: string;
|
|
17
|
+
}): Promise<ProtoDescriptor[]>;
|
|
18
|
+
static createByStaticMultiInstanceClazz(clazz: EggProtoImplClass, options: {
|
|
19
|
+
defineModuleName: string;
|
|
20
|
+
defineUnitPath: string;
|
|
21
|
+
instanceModuleName: string;
|
|
22
|
+
instanceDefineUnitPath: string;
|
|
23
|
+
}): ProtoDescriptor[];
|
|
24
|
+
static createByInstanceClazz(clazz: EggProtoImplClass, ctx: MultiInstancePrototypeGetObjectsContext): ProtoDescriptor;
|
|
25
|
+
static selectProto(proto: ProtoDescriptor, ctx: ProtoSelectorContext): boolean;
|
|
26
|
+
}
|