@eggjs/tegg-metadata 4.0.0-beta.7 → 4.0.0-beta.9

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