@eggjs/tegg-metadata 4.0.0-beta.4 → 4.0.0-beta.6

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 (108) hide show
  1. package/README.md +12 -0
  2. package/dist/errors.d.ts +18 -0
  3. package/dist/errors.js +29 -0
  4. package/dist/factory/EggPrototypeCreatorFactory.d.ts +13 -0
  5. package/dist/factory/EggPrototypeCreatorFactory.js +95 -0
  6. package/dist/factory/EggPrototypeFactory.d.ts +13 -0
  7. package/dist/factory/EggPrototypeFactory.js +41 -0
  8. package/dist/factory/LoadUnitFactory.d.ts +16 -0
  9. package/dist/factory/LoadUnitFactory.js +58 -0
  10. package/dist/factory/index.js +5 -0
  11. package/dist/impl/EggPrototypeBuilder.d.ts +26 -0
  12. package/dist/impl/EggPrototypeBuilder.js +115 -0
  13. package/dist/impl/EggPrototypeImpl.d.ts +28 -0
  14. package/dist/impl/EggPrototypeImpl.js +52 -0
  15. package/dist/impl/LoadUnitMultiInstanceProtoHook.d.ts +11 -0
  16. package/dist/impl/LoadUnitMultiInstanceProtoHook.js +16 -0
  17. package/dist/impl/ModuleLoadUnit.d.ts +38 -0
  18. package/dist/impl/ModuleLoadUnit.js +211 -0
  19. package/dist/impl/index.js +6 -0
  20. package/dist/index.d.ts +23 -0
  21. package/dist/index.js +28 -0
  22. package/dist/model/AppGraph.d.ts +42 -0
  23. package/dist/model/AppGraph.js +195 -0
  24. package/dist/model/EggPrototype.d.ts +7 -0
  25. package/dist/model/EggPrototype.js +7 -0
  26. package/dist/model/LoadUnit.d.ts +7 -0
  27. package/dist/model/LoadUnit.js +7 -0
  28. package/dist/model/ModuleDescriptor.d.ts +22 -0
  29. package/dist/model/ModuleDescriptor.js +33 -0
  30. package/dist/model/ProtoDescriptor/AbstractProtoDescriptor.d.ts +36 -0
  31. package/dist/model/ProtoDescriptor/AbstractProtoDescriptor.js +35 -0
  32. package/dist/model/ProtoDescriptor/ClassProtoDescriptor.d.ts +16 -0
  33. package/dist/model/ProtoDescriptor/ClassProtoDescriptor.js +27 -0
  34. package/dist/model/ProtoDescriptor/index.js +4 -0
  35. package/dist/model/ProtoDescriptorHelper.d.ts +30 -0
  36. package/dist/model/ProtoDescriptorHelper.js +113 -0
  37. package/dist/model/graph/GlobalGraph.d.ts +67 -0
  38. package/dist/model/graph/GlobalGraph.js +176 -0
  39. package/dist/model/graph/GlobalModuleNode.d.ts +29 -0
  40. package/dist/model/graph/GlobalModuleNode.js +42 -0
  41. package/dist/model/graph/GlobalModuleNodeBuilder.d.ts +17 -0
  42. package/dist/model/graph/GlobalModuleNodeBuilder.js +56 -0
  43. package/dist/model/graph/ProtoNode.d.ts +25 -0
  44. package/dist/model/graph/ProtoNode.js +43 -0
  45. package/dist/model/graph/ProtoSelector.d.ts +10 -0
  46. package/dist/model/graph/ProtoSelector.js +3 -0
  47. package/dist/model/graph/index.js +7 -0
  48. package/dist/model/index.js +15 -0
  49. package/dist/util/ClassUtil.d.ts +9 -0
  50. package/dist/util/ClassUtil.js +18 -0
  51. package/dist/util/index.js +3 -0
  52. package/package.json +27 -26
  53. package/src/errors.d.ts +0 -14
  54. package/src/errors.js +0 -27
  55. package/src/factory/EggPrototypeCreatorFactory.d.ts +0 -9
  56. package/src/factory/EggPrototypeCreatorFactory.js +0 -103
  57. package/src/factory/EggPrototypeFactory.d.ts +0 -9
  58. package/src/factory/EggPrototypeFactory.js +0 -52
  59. package/src/factory/LoadUnitFactory.d.ts +0 -12
  60. package/src/factory/LoadUnitFactory.js +0 -59
  61. package/src/factory/index.d.ts +0 -3
  62. package/src/factory/index.js +0 -4
  63. package/src/impl/EggPrototypeBuilder.d.ts +0 -22
  64. package/src/impl/EggPrototypeBuilder.js +0 -124
  65. package/src/impl/EggPrototypeImpl.d.ts +0 -24
  66. package/src/impl/EggPrototypeImpl.js +0 -53
  67. package/src/impl/LoadUnitMultiInstanceProtoHook.d.ts +0 -7
  68. package/src/impl/LoadUnitMultiInstanceProtoHook.js +0 -18
  69. package/src/impl/ModuleLoadUnit.d.ts +0 -35
  70. package/src/impl/ModuleLoadUnit.js +0 -268
  71. package/src/impl/index.d.ts +0 -4
  72. package/src/impl/index.js +0 -5
  73. package/src/index.d.ts +0 -6
  74. package/src/index.js +0 -7
  75. package/src/model/AppGraph.d.ts +0 -39
  76. package/src/model/AppGraph.js +0 -264
  77. package/src/model/EggPrototype.d.ts +0 -3
  78. package/src/model/EggPrototype.js +0 -3
  79. package/src/model/LoadUnit.d.ts +0 -3
  80. package/src/model/LoadUnit.js +0 -3
  81. package/src/model/ModuleDescriptor.d.ts +0 -18
  82. package/src/model/ModuleDescriptor.js +0 -38
  83. package/src/model/ProtoDescriptor/AbstractProtoDescriptor.d.ts +0 -32
  84. package/src/model/ProtoDescriptor/AbstractProtoDescriptor.js +0 -30
  85. package/src/model/ProtoDescriptor/ClassProtoDescriptor.d.ts +0 -12
  86. package/src/model/ProtoDescriptor/ClassProtoDescriptor.js +0 -30
  87. package/src/model/ProtoDescriptor/index.d.ts +0 -2
  88. package/src/model/ProtoDescriptor/index.js +0 -3
  89. package/src/model/ProtoDescriptorHelper.d.ts +0 -26
  90. package/src/model/ProtoDescriptorHelper.js +0 -129
  91. package/src/model/graph/GlobalGraph.d.ts +0 -63
  92. package/src/model/graph/GlobalGraph.js +0 -233
  93. package/src/model/graph/GlobalModuleNode.d.ts +0 -25
  94. package/src/model/graph/GlobalModuleNode.js +0 -38
  95. package/src/model/graph/GlobalModuleNodeBuilder.d.ts +0 -13
  96. package/src/model/graph/GlobalModuleNodeBuilder.js +0 -53
  97. package/src/model/graph/ProtoNode.d.ts +0 -19
  98. package/src/model/graph/ProtoNode.js +0 -37
  99. package/src/model/graph/ProtoSelector.d.ts +0 -6
  100. package/src/model/graph/ProtoSelector.js +0 -2
  101. package/src/model/graph/index.d.ts +0 -5
  102. package/src/model/graph/index.js +0 -6
  103. package/src/model/index.d.ts +0 -7
  104. package/src/model/index.js +0 -8
  105. package/src/util/ClassUtil.d.ts +0 -5
  106. package/src/util/ClassUtil.js +0 -17
  107. package/src/util/index.d.ts +0 -1
  108. package/src/util/index.js +0 -2
@@ -1,24 +0,0 @@
1
- import { InjectType, QualifierAttribute } from '@eggjs/core-decorator';
2
- import type { AccessLevel, EggProtoImplClass, EggPrototype, EggPrototypeName, Id, InjectConstructorProto, InjectObjectProto, MetaDataKey, ObjectInitTypeLike, QualifierInfo, QualifierValue } from '@eggjs/tegg-types';
3
- export declare class EggPrototypeImpl implements EggPrototype {
4
- private readonly clazz;
5
- private readonly qualifiers;
6
- readonly filepath: string;
7
- readonly id: string;
8
- readonly name: EggPrototypeName;
9
- readonly initType: ObjectInitTypeLike;
10
- readonly accessLevel: AccessLevel;
11
- readonly injectObjects: Array<InjectObjectProto | InjectConstructorProto>;
12
- readonly injectType: InjectType;
13
- readonly loadUnitId: Id;
14
- readonly className?: string;
15
- readonly multiInstanceConstructorIndex?: number;
16
- readonly multiInstanceConstructorAttributes?: QualifierAttribute[];
17
- [key: symbol]: PropertyDescriptor;
18
- constructor(id: string, name: EggPrototypeName, clazz: EggProtoImplClass, filepath: string, initType: ObjectInitTypeLike, accessLevel: AccessLevel, injectObjectMap: Array<InjectObjectProto | InjectConstructorProto>, loadUnitId: Id, qualifiers: QualifierInfo[], className?: string, injectType?: InjectType, multiInstanceConstructorIndex?: number, multiInstanceConstructorAttributes?: QualifierAttribute[]);
19
- verifyQualifiers(qualifiers: QualifierInfo[]): boolean;
20
- verifyQualifier(qualifier: QualifierInfo): boolean;
21
- getQualifier(attribute: string): QualifierValue | undefined;
22
- constructEggObject(...args: any): object;
23
- getMetaData<T>(metadataKey: MetaDataKey): T | undefined;
24
- }
@@ -1,53 +0,0 @@
1
- import { InjectType, MetadataUtil } from '@eggjs/core-decorator';
2
- export class EggPrototypeImpl {
3
- clazz;
4
- qualifiers;
5
- filepath;
6
- id;
7
- name;
8
- initType;
9
- accessLevel;
10
- injectObjects;
11
- injectType;
12
- loadUnitId;
13
- className;
14
- multiInstanceConstructorIndex;
15
- multiInstanceConstructorAttributes;
16
- constructor(id, name, clazz, filepath, initType, accessLevel, injectObjectMap, loadUnitId, qualifiers, className, injectType, multiInstanceConstructorIndex, multiInstanceConstructorAttributes) {
17
- this.id = id;
18
- this.clazz = clazz;
19
- this.name = name;
20
- this.filepath = filepath;
21
- this.initType = initType;
22
- this.accessLevel = accessLevel;
23
- this.injectObjects = injectObjectMap;
24
- this.loadUnitId = loadUnitId;
25
- this.qualifiers = qualifiers;
26
- this.className = className;
27
- this.injectType = injectType || InjectType.PROPERTY;
28
- this.multiInstanceConstructorIndex = multiInstanceConstructorIndex;
29
- this.multiInstanceConstructorAttributes = multiInstanceConstructorAttributes;
30
- }
31
- verifyQualifiers(qualifiers) {
32
- for (const qualifier of qualifiers) {
33
- if (!this.verifyQualifier(qualifier)) {
34
- return false;
35
- }
36
- }
37
- return true;
38
- }
39
- verifyQualifier(qualifier) {
40
- const selfQualifiers = this.qualifiers.find(t => t.attribute === qualifier.attribute);
41
- return selfQualifiers?.value === qualifier.value;
42
- }
43
- getQualifier(attribute) {
44
- return this.qualifiers.find(t => t.attribute === attribute)?.value;
45
- }
46
- constructEggObject(...args) {
47
- return Reflect.construct(this.clazz, args);
48
- }
49
- getMetaData(metadataKey) {
50
- return MetadataUtil.getMetaData(metadataKey, this.clazz);
51
- }
52
- }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnUHJvdG90eXBlSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ1Byb3RvdHlwZUltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQXNCLE1BQU0sdUJBQXVCLENBQUM7QUFlckYsTUFBTSxPQUFPLGdCQUFnQjtJQUNWLEtBQUssQ0FBb0I7SUFDekIsVUFBVSxDQUFrQjtJQUNwQyxRQUFRLENBQVM7SUFFakIsRUFBRSxDQUFTO0lBQ1gsSUFBSSxDQUFtQjtJQUN2QixRQUFRLENBQXFCO0lBQzdCLFdBQVcsQ0FBYztJQUN6QixhQUFhLENBQW9EO0lBQ2pFLFVBQVUsQ0FBYTtJQUN2QixVQUFVLENBQUs7SUFDZixTQUFTLENBQVU7SUFDbkIsNkJBQTZCLENBQVU7SUFDdkMsa0NBQWtDLENBQXdCO0lBR25FLFlBQ0UsRUFBVSxFQUNWLElBQXNCLEVBQ3RCLEtBQXdCLEVBQ3hCLFFBQWdCLEVBQ2hCLFFBQTRCLEVBQzVCLFdBQXdCLEVBQ3hCLGVBQWtFLEVBQ2xFLFVBQWMsRUFDZCxVQUEyQixFQUMzQixTQUFrQixFQUNsQixVQUF1QixFQUN2Qiw2QkFBc0MsRUFDdEMsa0NBQXlEO1FBRXpELElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxlQUFlLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNwRCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsNkJBQTZCLENBQUM7UUFDbkUsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLGtDQUFrQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUEyQjtRQUMxQyxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBd0I7UUFDdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RixPQUFPLGNBQWMsRUFBRSxLQUFLLEtBQUssU0FBUyxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNyRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBRyxJQUFTO1FBQzdCLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLENBQUksV0FBd0I7UUFDckMsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNGIn0=
@@ -1,7 +0,0 @@
1
- import type { EggProtoImplClass, LifecycleHook, LoadUnit, LoadUnitLifecycleContext } from '@eggjs/tegg-types';
2
- export declare class LoadUnitMultiInstanceProtoHook implements LifecycleHook<LoadUnitLifecycleContext, LoadUnit> {
3
- static multiInstanceClazzSet: Set<EggProtoImplClass>;
4
- static setAllClassList(clazzList: readonly EggProtoImplClass[]): void;
5
- static clear(): void;
6
- preCreate(): Promise<void>;
7
- }
@@ -1,18 +0,0 @@
1
- import { PrototypeUtil } from '@eggjs/core-decorator';
2
- export class LoadUnitMultiInstanceProtoHook {
3
- static multiInstanceClazzSet = new Set();
4
- static setAllClassList(clazzList) {
5
- for (const clazz of clazzList) {
6
- if (PrototypeUtil.isEggMultiInstancePrototype(clazz)) {
7
- this.multiInstanceClazzSet.add(clazz);
8
- }
9
- }
10
- }
11
- static clear() {
12
- this.multiInstanceClazzSet.clear();
13
- }
14
- async preCreate() {
15
- // ...
16
- }
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZFVuaXRNdWx0aUluc3RhbmNlUHJvdG9Ib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTG9hZFVuaXRNdWx0aUluc3RhbmNlUHJvdG9Ib29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd0RCxNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLE1BQU0sQ0FBQyxxQkFBcUIsR0FBMkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVqRSxNQUFNLENBQUMsZUFBZSxDQUFDLFNBQXVDO1FBQzVELEtBQUssTUFBTSxLQUFLLElBQUksU0FBUyxFQUFFLENBQUM7WUFDOUIsSUFBSSxhQUFhLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDYixNQUFNO0lBQ1IsQ0FBQyJ9
@@ -1,35 +0,0 @@
1
- import { EggLoadUnitType } from '@eggjs/tegg-types';
2
- import type { EggProtoImplClass, EggPrototype, LoadUnit, LoadUnitLifecycleContext, QualifierInfo } from '@eggjs/tegg-types';
3
- import { GlobalGraph } from '../model/index.js';
4
- export declare class ModuleGraph {
5
- private graph;
6
- clazzList: EggProtoImplClass[];
7
- readonly unitPath: string;
8
- readonly name: string;
9
- constructor(clazzList: EggProtoImplClass[], unitPath: string, name: string);
10
- private findInjectNode;
11
- build(): Promise<void>;
12
- sort(): void;
13
- }
14
- export declare class ModuleLoadUnit implements LoadUnit {
15
- private protoMap;
16
- private protos;
17
- private clazzList;
18
- readonly id: string;
19
- readonly name: string;
20
- readonly unitPath: string;
21
- readonly type = EggLoadUnitType.MODULE;
22
- get globalGraph(): GlobalGraph;
23
- constructor(name: string, unitPath: string);
24
- private doLoadClazz;
25
- private loadClazz;
26
- preLoad(): Promise<void>;
27
- init(): Promise<void>;
28
- containPrototype(proto: EggPrototype): boolean;
29
- getEggPrototype(name: string, qualifiers: QualifierInfo[]): EggPrototype[];
30
- registerEggPrototype(proto: EggPrototype): void;
31
- deletePrototype(proto: EggPrototype): void;
32
- destroy(): Promise<void>;
33
- iterateEggPrototype(): IterableIterator<EggPrototype>;
34
- static createModule(ctx: LoadUnitLifecycleContext): ModuleLoadUnit;
35
- }
@@ -1,268 +0,0 @@
1
- import assert from 'node:assert';
2
- import path from 'node:path';
3
- import { readFileSync } from 'node:fs';
4
- import { debuglog } from 'node:util';
5
- import { EggLoadUnitType, InitTypeQualifierAttribute, } from '@eggjs/tegg-types';
6
- import { Graph, GraphNode, MapUtil } from '@eggjs/tegg-common-util';
7
- import { IdenticalUtil, LifecycleUtil } from '@eggjs/tegg-lifecycle';
8
- import { FrameworkErrorFormater } from 'egg-errors';
9
- import { PrototypeUtil, QualifierUtil } from '@eggjs/core-decorator';
10
- import { EggPrototypeFactory, LoadUnitFactory, EggPrototypeCreatorFactory } from '../factory/index.js';
11
- import { ClassProtoDescriptor, GlobalGraph } from '../model/index.js';
12
- import { MultiPrototypeFound } from '../errors.js';
13
- const debug = debuglog('@eggjs/tegg-metadata/ModuleLoadUnit');
14
- let id = 0;
15
- // TODO del ModuleGraph in next major version
16
- class ProtoNode {
17
- clazz;
18
- name;
19
- id;
20
- qualifiers;
21
- initType;
22
- PrototypeUtil;
23
- constructor(clazz, objName, initType, qualifiers) {
24
- this.name = objName;
25
- this.id = '' + (id++);
26
- this.clazz = clazz;
27
- this.qualifiers = qualifiers;
28
- this.initType = initType;
29
- }
30
- verifyQualifiers(qualifiers) {
31
- for (const qualifier of qualifiers) {
32
- if (!this.verifyQualifier(qualifier)) {
33
- return false;
34
- }
35
- }
36
- return true;
37
- }
38
- verifyQualifier(qualifier) {
39
- const selfQualifiers = this.qualifiers.find(t => t.attribute === qualifier.attribute);
40
- return selfQualifiers?.value === qualifier.value;
41
- }
42
- toString() {
43
- return `${this.clazz.name}@${this.PrototypeUtil.getFilePath(this.clazz)}`;
44
- }
45
- }
46
- export class ModuleGraph {
47
- graph;
48
- clazzList;
49
- unitPath;
50
- name;
51
- constructor(clazzList, unitPath, name) {
52
- this.clazzList = clazzList;
53
- this.graph = new Graph();
54
- this.unitPath = unitPath;
55
- this.name = name;
56
- debug('ModuleGraph constructor on moduleName: %o, unitPath: %o, clazzList size: %o', this.name, this.unitPath, this.clazzList.length);
57
- }
58
- findInjectNode(objName, qualifiers, parentInitTye) {
59
- let nodes = Array.from(this.graph.nodes.values())
60
- .filter(t => t.val.name === objName)
61
- .filter(t => t.val.verifyQualifiers(qualifiers));
62
- if (nodes.length === 0) {
63
- return undefined;
64
- }
65
- if (nodes.length === 1) {
66
- return nodes[0];
67
- }
68
- const initTypeQualifier = {
69
- attribute: InitTypeQualifierAttribute,
70
- value: parentInitTye,
71
- };
72
- nodes = nodes.filter(t => t.val.verifyQualifiers([initTypeQualifier]));
73
- if (nodes.length === 1) {
74
- return nodes[0];
75
- }
76
- const temp = new Map();
77
- for (const node of nodes) {
78
- temp.set(node.val.clazz, node);
79
- }
80
- nodes = Array.from(temp.values());
81
- if (nodes.length === 1) {
82
- return nodes[0];
83
- }
84
- const result = nodes.map(node => node.val.toString());
85
- throw FrameworkErrorFormater.formatError(new MultiPrototypeFound(String(objName), qualifiers, JSON.stringify(result)));
86
- }
87
- async build() {
88
- const protoGraphNodes = [];
89
- for (const clazz of this.clazzList) {
90
- if (PrototypeUtil.isEggMultiInstancePrototype(clazz)) {
91
- const properties = await PrototypeUtil.getMultiInstanceProperty(clazz, {
92
- unitPath: this.unitPath,
93
- moduleName: this.name,
94
- });
95
- if (properties) {
96
- const qualifiers = QualifierUtil.getProtoQualifiers(clazz);
97
- for (const obj of properties.objects || []) {
98
- const instanceQualifiers = [
99
- ...qualifiers,
100
- ...obj.qualifiers,
101
- ];
102
- protoGraphNodes.push(new GraphNode(new ProtoNode(clazz, obj.name, properties.initType, instanceQualifiers)));
103
- }
104
- }
105
- }
106
- else {
107
- const qualifiers = QualifierUtil.getProtoQualifiers(clazz);
108
- const property = PrototypeUtil.getProperty(clazz);
109
- if (property) {
110
- protoGraphNodes.push(new GraphNode(new ProtoNode(clazz, property.name, property.initType, qualifiers)));
111
- }
112
- }
113
- }
114
- for (const node of protoGraphNodes) {
115
- if (!this.graph.addVertex(node)) {
116
- throw new Error(`duplicate proto: ${node.val.id}`);
117
- }
118
- }
119
- for (const node of protoGraphNodes) {
120
- if (PrototypeUtil.isEggMultiInstancePrototype(node.val.clazz)) {
121
- const property = await PrototypeUtil.getMultiInstanceProperty(node.val.clazz, {
122
- moduleName: this.name,
123
- unitPath: this.unitPath,
124
- });
125
- for (const objectInfo of property?.objects || []) {
126
- const injectObjects = PrototypeUtil.getInjectObjects(node.val.clazz);
127
- for (const injectObject of injectObjects) {
128
- const qualifiers = [
129
- ...QualifierUtil.getProperQualifiers(node.val.clazz, injectObject.refName),
130
- ...objectInfo.properQualifiers?.[injectObject.refName] ?? [],
131
- ];
132
- const injectNode = this.findInjectNode(injectObject.objName, qualifiers, node.val.initType);
133
- // If not found maybe in other module
134
- if (injectNode) {
135
- this.graph.addEdge(node, injectNode);
136
- }
137
- }
138
- }
139
- }
140
- else {
141
- const injectObjects = PrototypeUtil.getInjectObjects(node.val.clazz);
142
- for (const injectObject of injectObjects) {
143
- const qualifiers = QualifierUtil.getProperQualifiers(node.val.clazz, injectObject.refName);
144
- const injectNode = this.findInjectNode(injectObject.objName, qualifiers, node.val.initType);
145
- // If not found maybe in other module
146
- if (injectNode) {
147
- this.graph.addEdge(node, injectNode);
148
- }
149
- }
150
- }
151
- }
152
- }
153
- sort() {
154
- const loopPath = this.graph.loopPath();
155
- if (loopPath) {
156
- throw new Error('proto has recursive deps: ' + loopPath);
157
- }
158
- const clazzSet = new Set();
159
- for (const clazz of this.graph.sort()) {
160
- clazzSet.add(clazz.val.clazz);
161
- }
162
- this.clazzList = Array.from(clazzSet);
163
- }
164
- }
165
- export class ModuleLoadUnit {
166
- // private loader: Loader;
167
- protoMap = new Map();
168
- protos;
169
- clazzList;
170
- id;
171
- name;
172
- unitPath;
173
- type = EggLoadUnitType.MODULE;
174
- get globalGraph() {
175
- return GlobalGraph.instance;
176
- }
177
- constructor(name, unitPath) {
178
- this.id = IdenticalUtil.createLoadUnitId(name);
179
- this.name = name;
180
- this.unitPath = unitPath;
181
- debug('ModuleLoadUnit constructor on moduleName: %o, unitPath: %o, id: %o', this.name, this.unitPath, this.id);
182
- }
183
- doLoadClazz() {
184
- const protos = this.globalGraph.moduleProtoDescriptorMap.get(this.name);
185
- if (protos) {
186
- // TODO ModuleLoadUnit should support all proto descriptor
187
- this.protos = protos.filter(t => ClassProtoDescriptor.isClassProtoDescriptor(t));
188
- this.clazzList = this.protos.map(t => t.clazz);
189
- }
190
- else {
191
- this.protos = [];
192
- this.clazzList = [];
193
- }
194
- debug('doLoadClazz on moduleName: %o, protos size: %o, clazzList size: %o', this.name, this.protos.length, this.clazzList.length);
195
- }
196
- loadClazz() {
197
- if (!this.clazzList) {
198
- this.doLoadClazz();
199
- }
200
- }
201
- async preLoad() {
202
- this.loadClazz();
203
- for (const protoClass of this.clazzList) {
204
- // TODO refactor lifecycle hook to ProtoDescriptor or EggPrototype
205
- // ModuleLoadUnit should not use clazz list
206
- const fnName = LifecycleUtil.getStaticLifecycleHook('preLoad', protoClass);
207
- if (fnName) {
208
- const lifecycleHook = Reflect.get(protoClass, fnName);
209
- if (typeof lifecycleHook === 'function') {
210
- await lifecycleHook();
211
- }
212
- // TODO(@fengmk2): lifecycleHook is not a function should throw error
213
- }
214
- }
215
- }
216
- async init() {
217
- this.loadClazz();
218
- for (const protoDescriptor of this.protos) {
219
- const proto = await EggPrototypeCreatorFactory.createProtoByDescriptor(protoDescriptor, this);
220
- EggPrototypeFactory.instance.registerPrototype(proto, this);
221
- }
222
- }
223
- containPrototype(proto) {
224
- return !!(this.protoMap.get(proto.name)?.find(t => t === proto));
225
- }
226
- getEggPrototype(name, qualifiers) {
227
- const protos = this.protoMap.get(name);
228
- return protos?.filter(proto => proto.verifyQualifiers(qualifiers)) || [];
229
- }
230
- registerEggPrototype(proto) {
231
- const protoList = MapUtil.getOrStore(this.protoMap, proto.name, []);
232
- protoList.push(proto);
233
- }
234
- deletePrototype(proto) {
235
- const protos = this.protoMap.get(proto.name);
236
- if (protos) {
237
- const index = protos.indexOf(proto);
238
- if (index !== -1) {
239
- protos.splice(index, 1);
240
- }
241
- }
242
- }
243
- async destroy() {
244
- for (const namedProtoMap of this.protoMap.values()) {
245
- for (const proto of namedProtoMap.slice()) {
246
- EggPrototypeFactory.instance.deletePrototype(proto, this);
247
- }
248
- }
249
- this.protoMap.clear();
250
- }
251
- iterateEggPrototype() {
252
- const protos = Array.from(this.protoMap.values())
253
- .reduce((p, c) => {
254
- p = p.concat(c);
255
- return p;
256
- }, []);
257
- return protos.values();
258
- }
259
- static createModule(ctx) {
260
- const pkgPath = path.join(ctx.unitPath, 'package.json');
261
- const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
262
- assert(pkg.eggModule, `module config not found in package ${pkgPath}`);
263
- const { name } = pkg.eggModule;
264
- return new ModuleLoadUnit(name, ctx.unitPath);
265
- }
266
- }
267
- LoadUnitFactory.registerLoadUnitCreator(EggLoadUnitType.MODULE, ModuleLoadUnit.createModule);
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlTG9hZFVuaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJNb2R1bGVMb2FkVW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsZUFBZSxFQUVmLDBCQUEwQixHQUUzQixNQUFNLG1CQUFtQixDQUFDO0FBUzNCLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbkQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7QUFFOUQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRVgsNkNBQTZDO0FBQzdDLE1BQU0sU0FBUztJQUNKLEtBQUssQ0FBb0I7SUFDekIsSUFBSSxDQUFtQjtJQUN2QixFQUFFLENBQVM7SUFDWCxVQUFVLENBQWtCO0lBQzVCLFFBQVEsQ0FBcUI7SUFDOUIsYUFBYSxDQUFNO0lBRTNCLFlB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
@@ -1,4 +0,0 @@
1
- export * from './EggPrototypeBuilder.js';
2
- export * from './EggPrototypeImpl.js';
3
- export * from './LoadUnitMultiInstanceProtoHook.js';
4
- export * from './ModuleLoadUnit.js';
package/src/impl/index.js DELETED
@@ -1,5 +0,0 @@
1
- export * from './EggPrototypeBuilder.js';
2
- export * from './EggPrototypeImpl.js';
3
- export * from './LoadUnitMultiInstanceProtoHook.js';
4
- export * from './ModuleLoadUnit.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFCQUFxQixDQUFDIn0=
package/src/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export * from '@eggjs/tegg-types/metadata';
2
- export * from './factory/index.js';
3
- export * from './model/index.js';
4
- export * from './errors.js';
5
- export * from './util/index.js';
6
- export * from './impl/index.js';
package/src/index.js DELETED
@@ -1,7 +0,0 @@
1
- export * from '@eggjs/tegg-types/metadata';
2
- export * from './factory/index.js';
3
- export * from './model/index.js';
4
- export * from './errors.js';
5
- export * from './util/index.js';
6
- export * from './impl/index.js';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUMifQ==
@@ -1,39 +0,0 @@
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>;
11
- }
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>[];
19
- }
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[];
29
- }
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;
39
- }