@eggjs/tegg-metadata 3.46.0 → 3.46.2

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.
Files changed (28) hide show
  1. package/dist/index.d.ts +8 -0
  2. package/dist/index.js +9 -1
  3. package/dist/src/factory/EggPrototypeCreatorFactory.d.ts +2 -0
  4. package/dist/src/factory/EggPrototypeCreatorFactory.js +36 -1
  5. package/dist/src/impl/EggPrototypeBuilder.d.ts +1 -0
  6. package/dist/src/impl/EggPrototypeBuilder.js +22 -11
  7. package/dist/src/impl/ModuleLoadUnit.d.ts +5 -3
  8. package/dist/src/impl/ModuleLoadUnit.js +50 -101
  9. package/dist/src/model/AppGraph.js +20 -17
  10. package/dist/src/model/ModuleDescriptor.d.ts +18 -0
  11. package/dist/src/model/ModuleDescriptor.js +46 -0
  12. package/dist/src/model/ProtoDescriptor/AbstractProtoDescriptor.d.ts +32 -0
  13. package/dist/src/model/ProtoDescriptor/AbstractProtoDescriptor.js +21 -0
  14. package/dist/src/model/ProtoDescriptor/ClassProtoDescriptor.d.ts +12 -0
  15. package/dist/src/model/ProtoDescriptor/ClassProtoDescriptor.js +32 -0
  16. package/dist/src/model/ProtoDescriptorHelper.d.ts +26 -0
  17. package/dist/src/model/ProtoDescriptorHelper.js +149 -0
  18. package/dist/src/model/graph/GlobalGraph.d.ts +55 -0
  19. package/dist/src/model/graph/GlobalGraph.js +203 -0
  20. package/dist/src/model/graph/GlobalModuleNode.d.ts +25 -0
  21. package/dist/src/model/graph/GlobalModuleNode.js +36 -0
  22. package/dist/src/model/graph/GlobalModuleNodeBuilder.d.ts +13 -0
  23. package/dist/src/model/graph/GlobalModuleNodeBuilder.js +53 -0
  24. package/dist/src/model/graph/ProtoNode.d.ts +19 -0
  25. package/dist/src/model/graph/ProtoNode.js +39 -0
  26. package/dist/src/model/graph/ProtoSelector.d.ts +6 -0
  27. package/dist/src/model/graph/ProtoSelector.js +3 -0
  28. package/package.json +6 -6
@@ -43,6 +43,10 @@ class ClazzMap {
43
43
  });
44
44
  (0, node_assert_1.default)(property, `multi instance property not found for ${clazz.name}`);
45
45
  for (const info of property.objects) {
46
+ const instanceQualifiers = [
47
+ ...qualifiers,
48
+ ...info.qualifiers,
49
+ ];
46
50
  clazzMap[info.name] = clazzMap[info.name] || [];
47
51
  clazzMap[info.name].push({
48
52
  name: info.name,
@@ -50,10 +54,7 @@ class ClazzMap {
50
54
  unitPath: instanceNode.val.moduleConfig.path,
51
55
  moduleName: instanceNode.val.moduleConfig.name,
52
56
  }),
53
- qualifiers: [
54
- ...qualifiers,
55
- ...info.qualifiers,
56
- ],
57
+ qualifiers: instanceQualifiers,
57
58
  properQualifiers: info.properQualifiers || {},
58
59
  instanceModule: instanceNode,
59
60
  ownerModule: ownerNode,
@@ -154,18 +155,20 @@ class ModuleNode {
154
155
  if (!this.clazzList.includes(clazz)) {
155
156
  this.clazzList.push(clazz);
156
157
  }
157
- const defaultQualifier = [{
158
- attribute: tegg_types_1.InitTypeQualifierAttribute,
159
- value: core_decorator_1.PrototypeUtil.getInitType(clazz, {
160
- unitPath: this.moduleConfig.path,
161
- moduleName: this.moduleConfig.name,
162
- }),
163
- }, {
164
- attribute: tegg_types_1.LoadUnitNameQualifierAttribute,
165
- value: this.name,
166
- }];
167
- for (const qualifier of defaultQualifier) {
168
- core_decorator_1.QualifierUtil.addProtoQualifier(clazz, qualifier.attribute, qualifier.value);
158
+ if (!core_decorator_1.PrototypeUtil.isEggMultiInstancePrototype(clazz)) {
159
+ const defaultQualifier = [{
160
+ attribute: tegg_types_1.InitTypeQualifierAttribute,
161
+ value: core_decorator_1.PrototypeUtil.getInitType(clazz, {
162
+ unitPath: this.moduleConfig.path,
163
+ moduleName: this.moduleConfig.name,
164
+ }),
165
+ }, {
166
+ attribute: tegg_types_1.LoadUnitNameQualifierAttribute,
167
+ value: this.name,
168
+ }];
169
+ for (const qualifier of defaultQualifier) {
170
+ core_decorator_1.QualifierUtil.addProtoQualifier(clazz, qualifier.attribute, qualifier.value);
171
+ }
169
172
  }
170
173
  }
171
174
  toString() {
@@ -256,4 +259,4 @@ class AppGraph {
256
259
  }
257
260
  }
258
261
  exports.AppGraph = AppGraph;
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwR3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvQXBwR3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQWlDO0FBQ2pDLDBEQUE2QjtBQUM3Qiw4REFBNkU7QUFDN0UsMERBQXFFO0FBQ3JFLGtEQUFpSTtBQWNqSSxTQUFTLGVBQWUsQ0FBQyxlQUFnQyxFQUFFLFNBQXdCO0lBQ2pGLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RixPQUFPLENBQUEsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLEtBQUssTUFBSyxTQUFTLENBQUMsS0FBSyxDQUFDO0FBQ25ELENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLGVBQWdDLEVBQUUsVUFBMkI7SUFDckYsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2pELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFhLFFBQVE7SUFHbkIsWUFBWSxLQUF3QjtRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBd0I7UUFDcEM7Ozs7V0FJRztRQUNILE1BQU0sUUFBUSxHQUFpQixFQUFFLENBQUM7UUFDbEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDN0MsS0FBSyxNQUFNLEtBQUssSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxF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
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwR3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvQXBwR3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQWlDO0FBQ2pDLDBEQUE2QjtBQUM3Qiw4REFBNkU7QUFDN0UsMERBQXFFO0FBQ3JFLGtEQUFpSTtBQWNqSSxTQUFTLGVBQWUsQ0FBQyxlQUFnQyxFQUFFLFNBQXdCO0lBQ2pGLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RixPQUFPLENBQUEsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLEtBQUssTUFBSyxTQUFTLENBQUMsS0FBSyxDQUFDO0FBQ25ELENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLGVBQWdDLEVBQUUsVUFBMkI7SUFDckYsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2pELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFhLFFBQVE7SUFHbkIsWUFBWSxLQUF3QjtRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBd0I7UUFDcEM7Ozs7V0FJRztRQUNILE1BQU0sUUFBUSxHQUFpQixFQUFFLENBQUM7UUFDbEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDN0MsS0FBSyxNQUFNLEtBQUssSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxF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
@@ -0,0 +1,18 @@
1
+ import { EggProtoImplClass, 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,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ModuleDescriptorDumper = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const promises_1 = __importDefault(require("node:fs/promises"));
9
+ const core_decorator_1 = require("@eggjs/core-decorator");
10
+ const DUMP_PATH = process.env.MODULE_DUMP_PATH;
11
+ class ModuleDescriptorDumper {
12
+ static stringifyDescriptor(moduleDescriptor) {
13
+ return '{'
14
+ + `"name": "${moduleDescriptor.name}",`
15
+ + `"unitPath": "${moduleDescriptor.unitPath}",`
16
+ + (typeof moduleDescriptor.optional !== 'undefined' ? `"optional": ${moduleDescriptor.optional},` : '')
17
+ + `"clazzList": [${moduleDescriptor.clazzList.map(t => {
18
+ return ModuleDescriptorDumper.stringifyClazz(t, moduleDescriptor);
19
+ }).join(',')}],`
20
+ + `"multiInstanceClazzList": [${moduleDescriptor.multiInstanceClazzList.map(t => {
21
+ return ModuleDescriptorDumper.stringifyClazz(t, moduleDescriptor);
22
+ }).join(',')}],`
23
+ + `"protos": [${moduleDescriptor.protos.map(t => {
24
+ return JSON.stringify(t);
25
+ }).join(',')}]`
26
+ + '}';
27
+ }
28
+ static stringifyClazz(clazz, moduleDescriptor) {
29
+ return '{'
30
+ + `"name": "${clazz.name}",`
31
+ + (core_decorator_1.PrototypeUtil.getFilePath(clazz) ? `"filePath": "${node_path_1.default.relative(moduleDescriptor.unitPath, core_decorator_1.PrototypeUtil.getFilePath(clazz))}"` : '')
32
+ + '}';
33
+ }
34
+ static dumpPath(desc, options) {
35
+ var _a;
36
+ const dumpDir = (_a = DUMP_PATH !== null && DUMP_PATH !== void 0 ? DUMP_PATH : options === null || options === void 0 ? void 0 : options.dumpDir) !== null && _a !== void 0 ? _a : desc.unitPath;
37
+ return node_path_1.default.join(dumpDir, '.egg', `${desc.name}_module_desc.json`);
38
+ }
39
+ static async dump(desc, options) {
40
+ const dumpPath = ModuleDescriptorDumper.dumpPath(desc, options);
41
+ await promises_1.default.mkdir(node_path_1.default.dirname(dumpPath), { recursive: true });
42
+ await promises_1.default.writeFile(dumpPath, ModuleDescriptorDumper.stringifyDescriptor(desc));
43
+ }
44
+ }
45
+ exports.ModuleDescriptorDumper = ModuleDescriptorDumper;
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlRGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9Nb2R1bGVEZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDBEQUE2QjtBQUM3QixnRUFBa0M7QUFFbEMsMERBQXNEO0FBRXRELE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7QUFlL0MsTUFBYSxzQkFBc0I7SUFDakMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGdCQUFrQztRQUMzRCxPQUFPLEdBQUc7Y0FDTixZQUFZLGdCQUFnQixDQUFDLElBQUksSUFBSTtjQUNyQyxnQkFBZ0IsZ0JBQWdCLENBQUMsUUFBUSxJQUFJO2NBQzdDLENBQUMsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFlLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Y0FDckcsaUJBQWlCLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3BELE9BQU8sc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3BFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtjQUNkLDhCQUE4QixnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzlFLE9BQU8sc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3BFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSTtjQUNkLGNBQWMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRztjQUNiLEdBQUcsQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQXdCLEVBQUUsZ0JBQWtDO1FBQ2hGLE9BQU8sR0FBRztjQUNOLFlBQVksS0FBSyxDQUFDLElBQUksSUFBSTtjQUMxQixDQUFDLDhCQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsbUJBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLDhCQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2NBQ3hJLEdBQUcsQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQXNCLEVBQUUsT0FBMkI7O1FBQ2pFLE1BQU0sT0FBTyxHQUFHLE1BQUEsU0FBUyxhQUFULFNBQVMsY0FBVCxTQUFTLEdBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU8sbUNBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvRCxPQUFPLG1CQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFzQixFQUFFLE9BQTJCO1FBQ25FLE1BQU0sUUFBUSxHQUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEUsTUFBTSxrQkFBRSxDQUFDLEtBQUssQ0FBQyxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sa0JBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztDQUNGO0FBbkNELHdEQW1DQyJ9
@@ -0,0 +1,32 @@
1
+ import { AccessLevel, InjectObjectDescriptor, ObjectInitTypeLike, ProtoDescriptor, ProtoDescriptorTypeLike, 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,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractProtoDescriptor = void 0;
4
+ class AbstractProtoDescriptor {
5
+ constructor(options) {
6
+ this.name = options.name;
7
+ this.accessLevel = options.accessLevel;
8
+ this.initType = options.initType;
9
+ this.qualifiers = options.qualifiers;
10
+ this.protoImplType = options.protoImplType;
11
+ this.injectObjects = options.injectObjects;
12
+ this.defineModuleName = options.defineModuleName;
13
+ this.defineUnitPath = options.defineUnitPath;
14
+ this.instanceModuleName = options.instanceModuleName;
15
+ this.instanceDefineUnitPath = options.instanceDefineUnitPath;
16
+ this.type = options.type;
17
+ this.properQualifiers = options.properQualifiers;
18
+ }
19
+ }
20
+ exports.AbstractProtoDescriptor = AbstractProtoDescriptor;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RQcm90b0Rlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWwvUHJvdG9EZXNjcmlwdG9yL0Fic3RyYWN0UHJvdG9EZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXdCQSxNQUFzQix1QkFBdUI7SUFlM0MsWUFBc0IsT0FBdUM7UUFDM0QsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDN0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztRQUNyRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDO1FBQzdELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO0lBQ25ELENBQUM7Q0FHRjtBQS9CRCwwREErQkMifQ==
@@ -0,0 +1,12 @@
1
+ import { AbstractProtoDescriptor, AbstractProtoDescriptorOptions } from './AbstractProtoDescriptor';
2
+ import { EggProtoImplClass, ProtoDescriptor } from '@eggjs/tegg-types';
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,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClassProtoDescriptor = void 0;
4
+ const core_decorator_1 = require("@eggjs/core-decorator");
5
+ const AbstractProtoDescriptor_1 = require("./AbstractProtoDescriptor");
6
+ const ProtoDescriptorType_1 = require("@eggjs/tegg-types/metadata/enum/ProtoDescriptorType");
7
+ class ClassProtoDescriptor extends AbstractProtoDescriptor_1.AbstractProtoDescriptor {
8
+ static isClassProtoDescriptor(descriptor) {
9
+ return descriptor.type === ProtoDescriptorType_1.ProtoDescriptorType.CLASS;
10
+ }
11
+ constructor(options) {
12
+ super({
13
+ type: ProtoDescriptorType_1.ProtoDescriptorType.CLASS,
14
+ ...options,
15
+ });
16
+ this.clazz = options.clazz;
17
+ this.className = this.clazz.name;
18
+ }
19
+ equal(protoDescriptor) {
20
+ if (!ClassProtoDescriptor.isClassProtoDescriptor(protoDescriptor)) {
21
+ return false;
22
+ }
23
+ return this.clazz === protoDescriptor.clazz
24
+ && this.name === protoDescriptor.name
25
+ && this.accessLevel === protoDescriptor.accessLevel
26
+ && this.initType === protoDescriptor.initType
27
+ && this.instanceModuleName === protoDescriptor.instanceModuleName
28
+ && core_decorator_1.QualifierUtil.equalQualifiers(this.qualifiers, protoDescriptor.qualifiers);
29
+ }
30
+ }
31
+ exports.ClassProtoDescriptor = ClassProtoDescriptor;
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3NQcm90b0Rlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWwvUHJvdG9EZXNjcmlwdG9yL0NsYXNzUHJvdG9EZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBEQUFzRDtBQUN0RCx1RUFBb0c7QUFFcEcsNkZBQTBGO0FBTTFGLE1BQWEsb0JBQXFCLFNBQVEsaURBQXVCO0lBSS9ELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxVQUEyQjtRQUN2RCxPQUFRLFVBQXNDLENBQUMsSUFBSSxLQUFLLHlDQUFtQixDQUFDLEtBQUssQ0FBQztJQUNwRixDQUFDO0lBRUQsWUFBWSxPQUFvQztRQUM5QyxLQUFLLENBQUM7WUFDSixJQUFJLEVBQUUseUNBQW1CLENBQUMsS0FBSztZQUMvQixHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWdDO1FBQ3BDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ2xFLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxlQUFlLENBQUMsS0FBSztlQUN0QyxJQUFJLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxJQUFJO2VBQ2xDLElBQUksQ0FBQyxXQUFXLEtBQUssZUFBZSxDQUFDLFdBQVc7ZUFDaEQsSUFBSSxDQUFDLFFBQVEsS0FBSyxlQUFlLENBQUMsUUFBUTtlQUMxQyxJQUFJLENBQUMsa0JBQWtCLEtBQUssZUFBZSxDQUFDLGtCQUFrQjtlQUM5RCw4QkFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRixDQUFDO0NBQ0Y7QUE1QkQsb0RBNEJDIn0=
@@ -0,0 +1,26 @@
1
+ import { EggProtoImplClass, ObjectInitTypeLike, ProtoDescriptor, QualifierInfo, MultiInstancePrototypeGetObjectsContext } from '@eggjs/tegg-types';
2
+ import { ProtoSelectorContext } from './graph/ProtoSelector';
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
+ }): ProtoDescriptor[];
12
+ static createByDynamicMultiInstanceClazz(clazz: EggProtoImplClass, options: {
13
+ defineModuleName: string;
14
+ defineUnitPath: string;
15
+ instanceModuleName: string;
16
+ instanceDefineUnitPath: string;
17
+ }): 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
+ }
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ var _a, _ProtoDescriptorHelper_createByMultiInstanceClazz;
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ProtoDescriptorHelper = void 0;
13
+ const core_decorator_1 = require("@eggjs/core-decorator");
14
+ const tegg_types_1 = require("@eggjs/tegg-types");
15
+ const node_assert_1 = __importDefault(require("node:assert"));
16
+ const ClassProtoDescriptor_1 = require("./ProtoDescriptor/ClassProtoDescriptor");
17
+ class ProtoDescriptorHelper {
18
+ static addDefaultQualifier(qualifiers, initType, loadUnitName) {
19
+ const defaultQualifiers = [{
20
+ attribute: tegg_types_1.InitTypeQualifierAttribute,
21
+ value: initType,
22
+ }, {
23
+ attribute: tegg_types_1.LoadUnitNameQualifierAttribute,
24
+ value: loadUnitName,
25
+ }];
26
+ const res = [
27
+ ...qualifiers,
28
+ ];
29
+ for (const defaultQualifier of defaultQualifiers) {
30
+ if (!qualifiers.find(t => t.attribute === defaultQualifier.attribute)) {
31
+ res.push(defaultQualifier);
32
+ }
33
+ }
34
+ return res;
35
+ }
36
+ static createByMultiInstanceClazz(clazz, options) {
37
+ (0, node_assert_1.default)(core_decorator_1.PrototypeUtil.isEggMultiInstancePrototype(clazz), `clazz ${clazz.name} is not MultiInstancePrototype`);
38
+ const type = core_decorator_1.PrototypeUtil.getEggMultiInstancePrototypeType(clazz);
39
+ if (type === tegg_types_1.MultiInstanceType.DYNAMIC) {
40
+ return _a.createByDynamicMultiInstanceClazz(clazz, options);
41
+ }
42
+ else if (type === tegg_types_1.MultiInstanceType.STATIC) {
43
+ // static multi instance proto create only in self module
44
+ if (options.defineModuleName === options.instanceModuleName) {
45
+ return _a.createByStaticMultiInstanceClazz(clazz, options);
46
+ }
47
+ }
48
+ return [];
49
+ }
50
+ static createByDynamicMultiInstanceClazz(clazz, options) {
51
+ (0, node_assert_1.default)(core_decorator_1.PrototypeUtil.isEggMultiInstancePrototype(clazz), `clazz ${clazz.name} is not MultiInstancePrototype`);
52
+ const instanceProperty = core_decorator_1.PrototypeUtil.getDynamicMultiInstanceProperty(clazz, {
53
+ moduleName: options.instanceModuleName,
54
+ unitPath: options.instanceDefineUnitPath,
55
+ });
56
+ (0, node_assert_1.default)(instanceProperty, `not found PrototypeInfo for clazz ${clazz.name}`);
57
+ return __classPrivateFieldGet(_a, _a, "m", _ProtoDescriptorHelper_createByMultiInstanceClazz).call(_a, clazz, instanceProperty, options);
58
+ }
59
+ static createByStaticMultiInstanceClazz(clazz, options) {
60
+ (0, node_assert_1.default)(core_decorator_1.PrototypeUtil.isEggMultiInstancePrototype(clazz), `clazz ${clazz.name} is not MultiInstancePrototype`);
61
+ const instanceProperty = core_decorator_1.PrototypeUtil.getStaticMultiInstanceProperty(clazz);
62
+ (0, node_assert_1.default)(instanceProperty, `not found PrototypeInfo for clazz ${clazz.name}`);
63
+ return __classPrivateFieldGet(_a, _a, "m", _ProtoDescriptorHelper_createByMultiInstanceClazz).call(_a, clazz, instanceProperty, options);
64
+ }
65
+ static createByInstanceClazz(clazz, ctx) {
66
+ (0, node_assert_1.default)(core_decorator_1.PrototypeUtil.isEggPrototype(clazz), `clazz ${clazz.name} is not EggPrototype`);
67
+ (0, node_assert_1.default)(!core_decorator_1.PrototypeUtil.isEggMultiInstancePrototype(clazz), `clazz ${clazz.name} is not Prototype`);
68
+ const property = core_decorator_1.PrototypeUtil.getProperty(clazz);
69
+ (0, node_assert_1.default)(property, `not found PrototypeInfo for clazz ${clazz.name}`);
70
+ const protoQualifiers = _a.addDefaultQualifier(core_decorator_1.QualifierUtil.getProtoQualifiers(clazz), property.initType, ctx.moduleName);
71
+ const injectObjects = core_decorator_1.PrototypeUtil.getInjectObjects(clazz)
72
+ .map(t => {
73
+ const qualifiers = core_decorator_1.QualifierUtil.getProperQualifiers(clazz, t.refName);
74
+ return {
75
+ ...t,
76
+ qualifiers,
77
+ };
78
+ });
79
+ return new ClassProtoDescriptor_1.ClassProtoDescriptor({
80
+ name: property.name,
81
+ protoImplType: property.protoImplType,
82
+ accessLevel: property.accessLevel,
83
+ initType: property.initType,
84
+ qualifiers: protoQualifiers,
85
+ injectObjects,
86
+ instanceDefineUnitPath: ctx.unitPath,
87
+ instanceModuleName: ctx.moduleName,
88
+ defineUnitPath: ctx.unitPath,
89
+ defineModuleName: ctx.moduleName,
90
+ clazz,
91
+ properQualifiers: {},
92
+ });
93
+ }
94
+ static selectProto(proto, ctx) {
95
+ // 1. name match
96
+ if (proto.name !== ctx.name) {
97
+ return false;
98
+ }
99
+ // 2. access level match
100
+ if (proto.accessLevel !== tegg_types_1.AccessLevel.PUBLIC && proto.instanceModuleName !== ctx.moduleName) {
101
+ return false;
102
+ }
103
+ // 3. qualifier match
104
+ if (!core_decorator_1.QualifierUtil.matchQualifiers(proto.qualifiers, ctx.qualifiers)) {
105
+ return false;
106
+ }
107
+ return true;
108
+ }
109
+ }
110
+ exports.ProtoDescriptorHelper = ProtoDescriptorHelper;
111
+ _a = ProtoDescriptorHelper, _ProtoDescriptorHelper_createByMultiInstanceClazz = function _ProtoDescriptorHelper_createByMultiInstanceClazz(clazz, instanceProperty, options) {
112
+ const res = [];
113
+ for (const obj of instanceProperty.objects) {
114
+ let qualifiers = [
115
+ ...core_decorator_1.QualifierUtil.getProtoQualifiers(clazz),
116
+ ...obj.qualifiers,
117
+ ];
118
+ qualifiers = _a.addDefaultQualifier(qualifiers, instanceProperty.initType, options.instanceModuleName);
119
+ const injectObjects = core_decorator_1.PrototypeUtil.getInjectObjects(clazz)
120
+ .map(t => {
121
+ var _b, _c;
122
+ const qualifiers = core_decorator_1.QualifierUtil.getProperQualifiers(clazz, t.refName);
123
+ const instanceQualifier = (_c = (_b = obj.properQualifiers) === null || _b === void 0 ? void 0 : _b[t.refName]) !== null && _c !== void 0 ? _c : [];
124
+ return {
125
+ ...t,
126
+ qualifiers: [
127
+ ...qualifiers,
128
+ ...instanceQualifier,
129
+ ],
130
+ };
131
+ });
132
+ res.push(new ClassProtoDescriptor_1.ClassProtoDescriptor({
133
+ name: obj.name,
134
+ accessLevel: instanceProperty.accessLevel,
135
+ initType: instanceProperty.initType,
136
+ protoImplType: instanceProperty.protoImplType,
137
+ qualifiers,
138
+ injectObjects,
139
+ instanceModuleName: options.instanceModuleName,
140
+ instanceDefineUnitPath: options.instanceDefineUnitPath,
141
+ defineModuleName: options.defineModuleName,
142
+ defineUnitPath: options.defineUnitPath,
143
+ clazz,
144
+ properQualifiers: obj.properQualifiers || {},
145
+ }));
146
+ }
147
+ return res;
148
+ };
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdG9EZXNjcmlwdG9ySGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL1Byb3RvRGVzY3JpcHRvckhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwwREFJK0I7QUFDL0Isa0RBVTJCO0FBQzNCLDhEQUFpQztBQUVqQyxpRkFBOEU7QUFFOUUsTUFBYSxxQkFBcUI7SUFDaEMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQTJCLEVBQUUsUUFBNEIsRUFBRSxZQUFvQjtRQUN4RyxNQUFNLGlCQUFpQixHQUFHLENBQUM7Z0JBQ3pCLFNBQVMsRUFBRSx1Q0FBMEI7Z0JBQ3JDLEtBQUssRUFBRSxRQUFRO2FBQ2hCLEVBQUU7Z0JBQ0QsU0FBUyxFQUFFLDJDQUE4QjtnQkFDekMsS0FBSyxFQUFFLFlBQVk7YUFDcEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUc7WUFDVixHQUFHLFVBQVU7U0FDZCxDQUFDO1FBQ0YsS0FBSyxNQUFNLGdCQUFnQixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RFLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxLQUF3QixFQUFFLE9BSzNEO1FBQ0MsSUFBQSxxQkFBTSxFQUFDLDhCQUFhLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxLQUFLLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQzlHLE1BQU0sSUFBSSxHQUFHLDhCQUFhLENBQUMsZ0NBQWdDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsSUFBSSxJQUFJLEtBQUssOEJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkMsT0FBTyxFQUFxQixDQUFDLGlDQUFpQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqRixDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssOEJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0MseURBQXlEO1lBQ3pELElBQUksT0FBTyxDQUFDLGdCQUFnQixLQUFLLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUM1RCxPQUFPLEVBQXFCLENBQUMsZ0NBQWdDLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2hGLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLEtBQXdCLEVBQUUsT0FLbEU7UUFDQyxJQUFBLHFCQUFNLEVBQUMsOEJBQWEsQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEtBQUssQ0FBQyxJQUFJLGdDQUFnQyxDQUFDLENBQUM7UUFFOUcsTUFBTSxnQkFBZ0IsR0FBRyw4QkFBYSxDQUFDLCtCQUErQixDQUFDLEtBQUssRUFBRTtZQUM1RSxVQUFVLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtZQUN0QyxRQUFRLEVBQUUsT0FBTyxDQUFDLHNCQUFzQjtTQUN6QyxDQUFDLENBQUM7UUFDSCxJQUFBLHFCQUFNLEVBQUMsZ0JBQWdCLEVBQUUscUNBQXFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sdUJBQUEsRUFBcUIsNkRBQTRCLE1BQWpELEVBQXFCLEVBQTZCLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLEtBQXdCLEVBQUUsT0FLakU7UUFDQyxJQUFBLHFCQUFNLEVBQUMsOEJBQWEsQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEtBQUssQ0FBQyxJQUFJLGdDQUFnQyxDQUFDLENBQUM7UUFFOUcsTUFBTSxnQkFBZ0IsR0FBRyw4QkFBYSxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdFLElBQUEscUJBQU0sRUFBQyxnQkFBZ0IsRUFBRSxxQ0FBcUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFNUUsT0FBTyx1QkFBQSxFQUFxQiw2REFBNEIsTUFBakQsRUFBcUIsRUFBNkIsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUE4Q0QsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQXdCLEVBQUUsR0FBNEM7UUFDakcsSUFBQSxxQkFBTSxFQUFDLDhCQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsS0FBSyxDQUFDLElBQUksc0JBQXNCLENBQUMsQ0FBQztRQUN2RixJQUFBLHFCQUFNLEVBQUMsQ0FBQyw4QkFBYSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsS0FBSyxDQUFDLElBQUksbUJBQW1CLENBQUMsQ0FBQztRQUVsRyxNQUFNLFFBQVEsR0FBRyw4QkFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxJQUFBLHFCQUFNLEVBQUMsUUFBUSxFQUFFLHFDQUFxQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVwRSxNQUFNLGVBQWUsR0FBRyxFQUFxQixDQUFDLG1CQUFtQixDQUFDLDhCQUFhLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUksTUFBTSxhQUFhLEdBQUcsOEJBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7YUFDeEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1AsTUFBTSxVQUFVLEdBQUcsOEJBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZFLE9BQU87Z0JBQ0wsR0FBRyxDQUFDO2dCQUNKLFVBQVU7YUFDWCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLElBQUksMkNBQW9CLENBQUM7WUFDOUIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJO1lBQ25CLGFBQWEsRUFBRSxRQUFRLENBQUMsYUFBYTtZQUNyQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7WUFDakMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRO1lBQzNCLFVBQVUsRUFBRSxlQUFlO1lBQzNCLGFBQWE7WUFDYixzQkFBc0IsRUFBRSxHQUFHLENBQUMsUUFBUTtZQUNwQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsVUFBVTtZQUNsQyxjQUFjLEVBQUUsR0FBRyxDQUFDLFFBQVE7WUFDNUIsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLFVBQVU7WUFDaEMsS0FBSztZQUNMLGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBc0IsRUFBRSxHQUF5QjtRQUNsRSxnQkFBZ0I7UUFDaEIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCx3QkFBd0I7UUFDeEIsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLHdCQUFXLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDNUYsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyw4QkFBYSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3JFLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBaEtELHNEQWdLQzsySUEzRm9DLEtBQXdCLEVBQUUsZ0JBQStDLEVBQUUsT0FLN0c7SUFDQyxNQUFNLEdBQUcsR0FBc0IsRUFBRSxDQUFDO0lBRWxDLEtBQUssTUFBTSxHQUFHLElBQUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0MsSUFBSSxVQUFVLEdBQUc7WUFDZixHQUFHLDhCQUFhLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1lBQzFDLEdBQUcsR0FBRyxDQUFDLFVBQVU7U0FDbEIsQ0FBQztRQUNGLFVBQVUsR0FBRyxFQUFxQixDQUFDLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUgsTUFBTSxhQUFhLEdBQTZCLDhCQUFhLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO2FBQ2xGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTs7WUFDUCxNQUFNLFVBQVUsR0FBRyw4QkFBYSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkUsTUFBTSxpQkFBaUIsR0FBRyxNQUFBLE1BQUEsR0FBRyxDQUFDLGdCQUFnQiwwQ0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLG1DQUFJLEVBQUUsQ0FBQztZQUNsRSxPQUFPO2dCQUNMLEdBQUcsQ0FBQztnQkFDSixVQUFVLEVBQUU7b0JBQ1YsR0FBRyxVQUFVO29CQUNiLEdBQUcsaUJBQWlCO2lCQUNyQjthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSwyQ0FBb0IsQ0FBQztZQUNoQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7WUFDZCxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsV0FBVztZQUN6QyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsYUFBYTtZQUM3QyxVQUFVO1lBQ1YsYUFBYTtZQUNiLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7WUFDOUMsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLHNCQUFzQjtZQUN0RCxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO1lBQzFDLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztZQUN0QyxLQUFLO1lBQ0wsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixJQUFJLEVBQUU7U0FDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIn0=
@@ -0,0 +1,55 @@
1
+ import { ModuleReference } from '@eggjs/tegg-common-util';
2
+ import { InjectObjectDescriptor, ProtoDescriptor } from '@eggjs/tegg-types';
3
+ import { GlobalModuleNode } from './GlobalModuleNode';
4
+ import { ModuleDescriptor } from '../ModuleDescriptor';
5
+ export interface GlobalGraphOptions {
6
+ strict?: boolean;
7
+ }
8
+ /**
9
+ * Sort all prototypes and modules in app.
10
+ * - 1. LoaderFactory.loadApp: get ModuleDescriptors
11
+ * - 2. GlobalGraph.create: create global graph instance
12
+ * - 3. graph.build:
13
+ * - check duplicated prototypes exits
14
+ * - check inject object exists (only in strict mode,
15
+ * can register proto in hooks now, in next major version,
16
+ * should use load to create dynamic ProtoDescriptor and delete
17
+ * strict false options
18
+ * )
19
+ * - 4. graph.sort: build moduleConfigList and moduleProtoDescriptorMap
20
+ */
21
+ export declare class GlobalGraph {
22
+ #private;
23
+ /**
24
+ * Vertex: ModuleNode, collect prototypes in module
25
+ * Edge: ModuleDependencyMeta, prototype and it's inject object
26
+ * @private
27
+ */
28
+ private moduleGraph;
29
+ /**
30
+ * Vertex: ProtoNode, collect all prototypes in app
31
+ * Edge: ProtoDependencyMeta, inject object
32
+ * @private
33
+ */
34
+ private protoGraph;
35
+ /**
36
+ * The order of the moduleConfigList is the order in which they are instantiated
37
+ */
38
+ moduleConfigList: readonly ModuleReference[];
39
+ /**
40
+ * key: module name
41
+ * value: ProtoDescriptor in module, the order is the order in which they are instantiated
42
+ */
43
+ moduleProtoDescriptorMap: Map<string, ProtoDescriptor[]>;
44
+ strict: boolean;
45
+ /**
46
+ * The global instance used in ModuleLoadUnit
47
+ */
48
+ static instance?: GlobalGraph;
49
+ constructor(options?: GlobalGraphOptions);
50
+ addModuleNode(moduleNode: GlobalModuleNode): void;
51
+ build(): void;
52
+ findInjectProto(proto: ProtoDescriptor, injectObject: InjectObjectDescriptor): ProtoDescriptor | undefined;
53
+ sort(): void;
54
+ static create(moduleDescriptors: ModuleDescriptor[], options?: GlobalGraphOptions): GlobalGraph;
55
+ }