@eggjs/tegg-metadata 4.0.0-beta.1 → 4.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +12 -0
  2. package/dist/errors.js +27 -0
  3. package/{src → dist}/factory/EggPrototypeCreatorFactory.d.ts +1 -1
  4. package/dist/factory/EggPrototypeCreatorFactory.js +108 -0
  5. package/dist/factory/EggPrototypeFactory.js +52 -0
  6. package/dist/factory/LoadUnitFactory.js +59 -0
  7. package/dist/factory/index.d.ts +3 -0
  8. package/dist/factory/index.js +4 -0
  9. package/dist/impl/EggPrototypeBuilder.js +124 -0
  10. package/{src → dist}/impl/EggPrototypeImpl.d.ts +1 -1
  11. package/dist/impl/EggPrototypeImpl.js +53 -0
  12. package/dist/impl/LoadUnitMultiInstanceProtoHook.js +18 -0
  13. package/{src → dist}/impl/ModuleLoadUnit.d.ts +1 -1
  14. package/dist/impl/ModuleLoadUnit.js +268 -0
  15. package/dist/impl/index.d.ts +4 -0
  16. package/dist/impl/index.js +5 -0
  17. package/dist/index.d.ts +6 -0
  18. package/dist/index.js +7 -0
  19. package/dist/model/AppGraph.js +264 -0
  20. package/{src → dist}/model/EggPrototype.js +1 -1
  21. package/{src → dist}/model/LoadUnit.js +1 -1
  22. package/{src → dist}/model/ModuleDescriptor.d.ts +1 -1
  23. package/dist/model/ModuleDescriptor.js +39 -0
  24. package/{src → dist}/model/ProtoDescriptor/AbstractProtoDescriptor.d.ts +1 -1
  25. package/dist/model/ProtoDescriptor/AbstractProtoDescriptor.js +31 -0
  26. package/{src → dist}/model/ProtoDescriptor/ClassProtoDescriptor.d.ts +2 -2
  27. package/dist/model/ProtoDescriptor/ClassProtoDescriptor.js +30 -0
  28. package/dist/model/ProtoDescriptor/index.d.ts +2 -0
  29. package/dist/model/ProtoDescriptor/index.js +3 -0
  30. package/{src → dist}/model/ProtoDescriptorHelper.d.ts +2 -2
  31. package/dist/model/ProtoDescriptorHelper.js +130 -0
  32. package/{src → dist}/model/graph/GlobalGraph.d.ts +6 -6
  33. package/dist/model/graph/GlobalGraph.js +233 -0
  34. package/{src → dist}/model/graph/GlobalModuleNode.d.ts +3 -3
  35. package/dist/model/graph/GlobalModuleNode.js +39 -0
  36. package/{src → dist}/model/graph/GlobalModuleNodeBuilder.d.ts +2 -2
  37. package/dist/model/graph/GlobalModuleNodeBuilder.js +54 -0
  38. package/{src → dist}/model/graph/ProtoNode.d.ts +3 -3
  39. package/dist/model/graph/ProtoNode.js +40 -0
  40. package/{src → dist}/model/graph/ProtoSelector.d.ts +1 -1
  41. package/dist/model/graph/ProtoSelector.js +2 -0
  42. package/dist/model/graph/index.d.ts +5 -0
  43. package/dist/model/graph/index.js +6 -0
  44. package/dist/model/index.d.ts +7 -0
  45. package/dist/model/index.js +8 -0
  46. package/dist/util/ClassUtil.js +17 -0
  47. package/dist/util/index.d.ts +1 -0
  48. package/dist/util/index.js +2 -0
  49. package/package.json +26 -26
  50. package/src/errors.js +0 -27
  51. package/src/factory/EggPrototypeCreatorFactory.js +0 -103
  52. package/src/factory/EggPrototypeFactory.js +0 -52
  53. package/src/factory/LoadUnitFactory.js +0 -59
  54. package/src/factory/index.d.ts +0 -3
  55. package/src/factory/index.js +0 -4
  56. package/src/impl/EggPrototypeBuilder.js +0 -124
  57. package/src/impl/EggPrototypeImpl.js +0 -53
  58. package/src/impl/LoadUnitMultiInstanceProtoHook.js +0 -18
  59. package/src/impl/ModuleLoadUnit.js +0 -268
  60. package/src/impl/index.d.ts +0 -4
  61. package/src/impl/index.js +0 -5
  62. package/src/index.d.ts +0 -6
  63. package/src/index.js +0 -7
  64. package/src/model/AppGraph.js +0 -264
  65. package/src/model/ModuleDescriptor.js +0 -38
  66. package/src/model/ProtoDescriptor/AbstractProtoDescriptor.js +0 -30
  67. package/src/model/ProtoDescriptor/ClassProtoDescriptor.js +0 -30
  68. package/src/model/ProtoDescriptor/index.d.ts +0 -2
  69. package/src/model/ProtoDescriptor/index.js +0 -3
  70. package/src/model/ProtoDescriptorHelper.js +0 -129
  71. package/src/model/graph/GlobalGraph.js +0 -233
  72. package/src/model/graph/GlobalModuleNode.js +0 -38
  73. package/src/model/graph/GlobalModuleNodeBuilder.js +0 -53
  74. package/src/model/graph/ProtoNode.js +0 -37
  75. package/src/model/graph/ProtoSelector.js +0 -2
  76. package/src/model/graph/index.d.ts +0 -5
  77. package/src/model/graph/index.js +0 -6
  78. package/src/model/index.d.ts +0 -7
  79. package/src/model/index.js +0 -8
  80. package/src/util/ClassUtil.js +0 -17
  81. package/src/util/index.d.ts +0 -1
  82. package/src/util/index.js +0 -2
  83. /package/{src → dist}/errors.d.ts +0 -0
  84. /package/{src → dist}/factory/EggPrototypeFactory.d.ts +0 -0
  85. /package/{src → dist}/factory/LoadUnitFactory.d.ts +0 -0
  86. /package/{src → dist}/impl/EggPrototypeBuilder.d.ts +0 -0
  87. /package/{src → dist}/impl/LoadUnitMultiInstanceProtoHook.d.ts +0 -0
  88. /package/{src → dist}/model/AppGraph.d.ts +0 -0
  89. /package/{src → dist}/model/EggPrototype.d.ts +0 -0
  90. /package/{src → dist}/model/LoadUnit.d.ts +0 -0
  91. /package/{src → dist}/util/ClassUtil.d.ts +0 -0
@@ -0,0 +1,54 @@
1
+ import {} from '@eggjs/tegg-types';
2
+ import { ModuleConfigUtil } from '@eggjs/tegg-common-util';
3
+ import { ProtoDescriptorHelper } from "../ProtoDescriptorHelper.js";
4
+ import { GlobalModuleNode } from "./GlobalModuleNode.js";
5
+ export class GlobalModuleNodeBuilder {
6
+ name;
7
+ unitPath;
8
+ optional;
9
+ protos;
10
+ constructor(options) {
11
+ this.name = options.name;
12
+ this.unitPath = options.unitPath;
13
+ this.optional = options.optional;
14
+ this.protos = [];
15
+ }
16
+ addClazz(clazz) {
17
+ const proto = ProtoDescriptorHelper.createByInstanceClazz(clazz, {
18
+ moduleName: this.name,
19
+ unitPath: this.unitPath,
20
+ });
21
+ this.protos.push(proto);
22
+ return this;
23
+ }
24
+ async addMultiInstanceClazz(clazz, defineModuleName, defineUnitPath) {
25
+ const protos = await ProtoDescriptorHelper.createByMultiInstanceClazz(clazz, {
26
+ defineModuleName,
27
+ defineUnitPath,
28
+ instanceModuleName: this.name,
29
+ instanceDefineUnitPath: this.unitPath,
30
+ });
31
+ this.protos.push(...protos);
32
+ return this;
33
+ }
34
+ build() {
35
+ const node = new GlobalModuleNode({
36
+ name: this.name,
37
+ unitPath: this.unitPath,
38
+ optional: this.optional,
39
+ });
40
+ for (const proto of this.protos) {
41
+ node.addProto(proto);
42
+ }
43
+ return node;
44
+ }
45
+ static create(unitPath, optional = false) {
46
+ const name = ModuleConfigUtil.readModuleNameSync(unitPath);
47
+ return new GlobalModuleNodeBuilder({
48
+ name,
49
+ unitPath,
50
+ optional,
51
+ });
52
+ }
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsTW9kdWxlTm9kZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvZ3JhcGgvR2xvYmFsTW9kdWxlTm9kZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnRCxNQUFNLG1CQUFtQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0MsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RixNQUFNLE9BQU8sdUJBQXVCO0lBQ2pCLElBQUksQ0FBUztJQUNiLFFBQVEsQ0FBUztJQUNqQixRQUFRLENBQVU7SUFDbEIsTUFBTSxDQUFvQjtJQUUzQyxZQUFZLE9BQWdDO1FBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBd0I7UUFDL0IsTUFBTSxLQUFLLEdBQUcscUJBQXFCLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFO1lBQy9ELFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNyQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEtBQXdCLEVBQUUsZ0JBQXdCLEVBQUUsY0FBc0I7UUFDcEcsTUFBTSxNQUFNLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUU7WUFDM0UsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUM3QixzQkFBc0IsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN0QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUs7UUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ2hDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFnQixFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQzlDLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELE9BQU8sSUFBSSx1QkFBdUIsQ0FBQztZQUNqQyxJQUFJO1lBQ0osUUFBUTtZQUNSLFFBQVE7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
@@ -1,6 +1,6 @@
1
- import { GraphNodeObj, ProtoDescriptor } from '@eggjs/tegg-types';
2
- import { EdgeMeta } from '@eggjs/tegg-common-util';
3
- import { ProtoSelectorContext } from './ProtoSelector.js';
1
+ import { type GraphNodeObj, type ProtoDescriptor } from '@eggjs/tegg-types';
2
+ import { type EdgeMeta } from '@eggjs/tegg-common-util';
3
+ import { type ProtoSelectorContext } from './ProtoSelector.ts';
4
4
  export declare class ProtoDependencyMeta implements EdgeMeta {
5
5
  injectObj: PropertyKey;
6
6
  constructor({ injectObj, }: {
@@ -0,0 +1,40 @@
1
+ import {} from '@eggjs/tegg-types';
2
+ import {} from '@eggjs/tegg-common-util';
3
+ import { ProtoDescriptorHelper } from "../ProtoDescriptorHelper.js";
4
+ import {} from "./ProtoSelector.js";
5
+ export class ProtoDependencyMeta {
6
+ injectObj;
7
+ constructor({ injectObj, }) {
8
+ this.injectObj = injectObj;
9
+ }
10
+ equal(meta) {
11
+ return this.injectObj === meta.injectObj;
12
+ }
13
+ toString() {
14
+ return `inject ${String(this.injectObj)}`;
15
+ }
16
+ }
17
+ export class ProtoNode {
18
+ id;
19
+ proto;
20
+ constructor(proto) {
21
+ this.id = ProtoNode.createProtoId(proto);
22
+ this.proto = proto;
23
+ }
24
+ toString() {
25
+ return `${String(this.proto.name)}@${this.proto.instanceDefineUnitPath}`;
26
+ }
27
+ selectProto(ctx) {
28
+ return ProtoDescriptorHelper.selectProto(this.proto, ctx);
29
+ }
30
+ static createProtoId(proto) {
31
+ const id = [
32
+ proto.name,
33
+ proto.instanceModuleName,
34
+ proto.initType,
35
+ ...proto.qualifiers.map(t => String(t.attribute) + String(t.value)),
36
+ ];
37
+ return id.join('@');
38
+ }
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdG9Ob2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL2dyYXBoL1Byb3RvTm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJDLE1BQU0sbUJBQW1CLENBQUM7QUFDNUUsT0FBTyxFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBNkIsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFNBQVMsQ0FBYztJQUV2QixZQUFZLEVBQ1YsU0FBUyxHQUdWO1FBQ0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUF5QjtRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sVUFBVSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7SUFDNUMsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFNBQVM7SUFDWCxFQUFFLENBQVM7SUFDWCxLQUFLLENBQWtCO0lBRWhDLFlBQVksS0FBc0I7UUFDaEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQXlCO1FBQ25DLE9BQU8scUJBQXFCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBc0I7UUFDekMsTUFBTSxFQUFFLEdBQUc7WUFDVCxLQUFLLENBQUMsSUFBSTtZQUNWLEtBQUssQ0FBQyxrQkFBa0I7WUFDeEIsS0FBSyxDQUFDLFFBQVE7WUFDZCxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BFLENBQUM7UUFDRixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztDQUNGIn0=
@@ -1,4 +1,4 @@
1
- import { QualifierInfo } from '@eggjs/tegg-types';
1
+ import { type QualifierInfo } from '@eggjs/tegg-types';
2
2
  export interface ProtoSelectorContext {
3
3
  name: PropertyKey;
4
4
  qualifiers: QualifierInfo[];
@@ -0,0 +1,2 @@
1
+ import {} from '@eggjs/tegg-types';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdG9TZWxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9ncmFwaC9Qcm90b1NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsTUFBTSxtQkFBbUIsQ0FBQyJ9
@@ -0,0 +1,5 @@
1
+ export * from './GlobalGraph.ts';
2
+ export * from './GlobalModuleNode.ts';
3
+ export * from './GlobalModuleNodeBuilder.ts';
4
+ export * from './ProtoNode.ts';
5
+ export * from './ProtoSelector.ts';
@@ -0,0 +1,6 @@
1
+ export * from "./GlobalGraph.js";
2
+ export * from "./GlobalModuleNode.js";
3
+ export * from "./GlobalModuleNodeBuilder.js";
4
+ export * from "./ProtoNode.js";
5
+ export * from "./ProtoSelector.js";
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvZ3JhcGgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG9CQUFvQixDQUFDIn0=
@@ -0,0 +1,7 @@
1
+ export * from './graph/index.ts';
2
+ export * from './ProtoDescriptor/index.ts';
3
+ export * from './AppGraph.ts';
4
+ export * from './EggPrototype.ts';
5
+ export * from './LoadUnit.ts';
6
+ export * from './ModuleDescriptor.ts';
7
+ export * from './ProtoDescriptorHelper.ts';
@@ -0,0 +1,8 @@
1
+ export * from "./graph/index.js";
2
+ export * from "./ProtoDescriptor/index.js";
3
+ export * from "./AppGraph.js";
4
+ export * from "./EggPrototype.js";
5
+ export * from "./LoadUnit.js";
6
+ export * from "./ModuleDescriptor.js";
7
+ export * from "./ProtoDescriptorHelper.js";
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDRCQUE0QixDQUFDIn0=
@@ -0,0 +1,17 @@
1
+ import { PrototypeUtil } from '@eggjs/core-decorator';
2
+ export class ClassUtil {
3
+ static classDescription(clazz) {
4
+ const filePath = PrototypeUtil.getFilePath(clazz);
5
+ const name = this.className(clazz);
6
+ let desc = `class:${String(name)}`;
7
+ if (filePath) {
8
+ desc += `@${filePath}`;
9
+ }
10
+ return desc;
11
+ }
12
+ static className(clazz) {
13
+ const property = PrototypeUtil.getProperty(clazz);
14
+ return (property?.name || clazz.name);
15
+ }
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3NVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvQ2xhc3NVdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd0RCxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBd0I7UUFDOUMsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxHQUFHLFNBQVMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbkMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQXdCO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBVyxDQUFDO0lBQ2xELENBQUM7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ export * from './ClassUtil.ts';
@@ -0,0 +1,2 @@
1
+ export * from "./ClassUtil.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/tegg-metadata",
3
- "version": "4.0.0-beta.1",
3
+ "version": "4.0.0-beta.10",
4
4
  "description": "tegg metadata",
5
5
  "keywords": [
6
6
  "egg",
@@ -10,23 +10,15 @@
10
10
  ],
11
11
  "type": "module",
12
12
  "exports": {
13
- ".": {
14
- "types": "./src/index.d.ts",
15
- "default": "./src/index.js"
16
- }
13
+ ".": "./dist/index.js",
14
+ "./package.json": "./package.json"
17
15
  },
18
16
  "files": [
19
- "src/**/*.js",
20
- "src/**/*.d.ts"
17
+ "dist"
21
18
  ],
22
- "scripts": {
23
- "clean": "tsc -b --clean",
24
- "tsc:pub": "npm run clean && tsc -p ./tsconfig.json",
25
- "prepublishOnly": "npm run tsc:pub"
26
- },
27
19
  "author": "killagu <killa123@126.com>",
28
20
  "license": "MIT",
29
- "homepage": "https://github.com/eggjs/tegg",
21
+ "homepage": "https://github.com/eggjs/tegg/tree/next/core/metadata",
30
22
  "bugs": {
31
23
  "url": "https://github.com/eggjs/tegg/issues"
32
24
  },
@@ -36,24 +28,32 @@
36
28
  "directory": "core/metadata"
37
29
  },
38
30
  "engines": {
39
- "node": ">=20.0.0"
31
+ "node": ">=22.18.0"
40
32
  },
41
33
  "dependencies": {
42
- "@eggjs/core-decorator": "^4.0.0-beta.1",
43
- "@eggjs/tegg-common-util": "^4.0.0-beta.1",
44
- "@eggjs/tegg-lifecycle": "^4.0.0-beta.1",
45
- "@eggjs/tegg-types": "^4.0.0-beta.1",
46
- "egg-errors": "^2.2.3"
34
+ "egg-errors": "^2.3.0",
35
+ "@eggjs/core-decorator": "4.0.0-beta.10",
36
+ "@eggjs/tegg-common-util": "4.0.0-beta.10",
37
+ "@eggjs/tegg-lifecycle": "4.0.0-beta.10",
38
+ "@eggjs/tegg-types": "4.0.0-beta.10"
47
39
  },
48
40
  "devDependencies": {
49
- "@types/node": "22",
50
- "globby": "14",
51
- "is-type-of": "2",
52
- "ts-node": "10",
53
- "typescript": "5"
41
+ "@types/node": "^22.10.5",
42
+ "globby": "^14.1.0",
43
+ "is-type-of": "^2.2.0",
44
+ "typescript": "^5.9.3",
45
+ "tsdown": "^0.15.6",
46
+ "unplugin-unused": "^0.5.3"
54
47
  },
55
48
  "publishConfig": {
56
49
  "access": "public"
57
50
  },
58
- "gitHead": "79a22905272d6de7fe06152231dff65d213d9166"
59
- }
51
+ "main": "./dist/index.js",
52
+ "module": "./dist/index.js",
53
+ "types": "./dist/index.d.ts",
54
+ "scripts": {
55
+ "clean": "rimraf dist",
56
+ "build": "tsdown && rimraf dist && tsc -b --clean && tsc",
57
+ "typecheck": "tsc --noEmit"
58
+ }
59
+ }
package/src/errors.js DELETED
@@ -1,27 +0,0 @@
1
- import { FrameworkBaseError } from 'egg-errors';
2
- import { ErrorCodes } from '@eggjs/tegg-types';
3
- export class TeggError extends FrameworkBaseError {
4
- get module() {
5
- return 'TEGG';
6
- }
7
- }
8
- export class EggPrototypeNotFound extends TeggError {
9
- constructor(protoName, loadUnitId) {
10
- const msg = loadUnitId
11
- ? `Object ${String(protoName)} not found in ${loadUnitId}`
12
- : `Object ${String(protoName)} not found`;
13
- super(msg, ErrorCodes.EGG_PROTO_NOT_FOUND);
14
- }
15
- }
16
- export class MultiPrototypeFound extends TeggError {
17
- constructor(name, qualifier, result) {
18
- const msg = `multi proto found for name:${String(name)} and qualifiers ${JSON.stringify(qualifier)}${result ? `, result is ${result}` : ''}`;
19
- super(msg, ErrorCodes.MULTI_PROTO_FOUND);
20
- }
21
- }
22
- export class IncompatibleProtoInject extends TeggError {
23
- constructor(msg) {
24
- super(msg, ErrorCodes.INCOMPATIBLE_PROTO_INJECT);
25
- }
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHL0MsTUFBTSxPQUFPLFNBQVUsU0FBUSxrQkFBa0I7SUFDL0MsSUFBSSxNQUFNO1FBQ1IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFNBQVM7SUFDakQsWUFBWSxTQUEyQixFQUFFLFVBQThCO1FBQ3JFLE1BQU0sR0FBRyxHQUFHLFVBQVU7WUFDcEIsQ0FBQyxDQUFDLFVBQVUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsVUFBVSxFQUFFO1lBQzFELENBQUMsQ0FBQyxVQUFVLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQzVDLEtBQUssQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFNBQVM7SUFDaEQsWUFBWSxJQUFzQixFQUFFLFNBQTBCLEVBQUUsTUFBZTtRQUM3RSxNQUFNLEdBQUcsR0FBRyw4QkFBOEIsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzdJLEtBQUssQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFNBQVM7SUFDcEQsWUFBWSxHQUFXO1FBQ3JCLEtBQUssQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNGIn0=
@@ -1,103 +0,0 @@
1
- import assert from 'node:assert';
2
- import { InitTypeQualifierAttribute, LoadUnitNameQualifierAttribute, PrototypeUtil } from '@eggjs/core-decorator';
3
- import { EggPrototypeLifecycleUtil } from '../model/index.js';
4
- export class EggPrototypeCreatorFactory {
5
- static creatorMap = new Map();
6
- static registerPrototypeCreator(type, creator) {
7
- this.creatorMap.set(type, creator);
8
- }
9
- static getPrototypeCreator(type) {
10
- return this.creatorMap.get(type);
11
- }
12
- static async createProto(clazz, loadUnit) {
13
- let properties = [];
14
- const initTypeQualifierAttributeValue = await PrototypeUtil.getInitType(clazz, {
15
- unitPath: loadUnit.unitPath,
16
- moduleName: loadUnit.name,
17
- });
18
- const defaultQualifier = [{
19
- attribute: InitTypeQualifierAttribute,
20
- value: initTypeQualifierAttributeValue,
21
- }, {
22
- attribute: LoadUnitNameQualifierAttribute,
23
- value: loadUnit.name,
24
- }];
25
- if (PrototypeUtil.isEggMultiInstancePrototype(clazz)) {
26
- const multiInstanceProtoInfo = await PrototypeUtil.getMultiInstanceProperty(clazz, {
27
- unitPath: loadUnit.unitPath,
28
- moduleName: loadUnit.name,
29
- });
30
- assert(multiInstanceProtoInfo, `multiInstanceProtoInfo is undefined, clazz: ${clazz.name}, unitPath: ${loadUnit.unitPath}, moduleName: ${loadUnit.name}`);
31
- for (const obj of multiInstanceProtoInfo.objects) {
32
- defaultQualifier.forEach(qualifier => {
33
- if (!obj.qualifiers.find(t => t.attribute === qualifier.attribute)) {
34
- obj.qualifiers.push(qualifier);
35
- }
36
- });
37
- properties.push({
38
- name: obj.name,
39
- protoImplType: multiInstanceProtoInfo.protoImplType,
40
- initType: multiInstanceProtoInfo.initType,
41
- accessLevel: multiInstanceProtoInfo.accessLevel,
42
- qualifiers: obj.qualifiers,
43
- properQualifiers: obj.properQualifiers,
44
- className: multiInstanceProtoInfo.className,
45
- });
46
- }
47
- }
48
- else {
49
- const property = PrototypeUtil.getProperty(clazz);
50
- if (!property.qualifiers) {
51
- property.qualifiers = [];
52
- }
53
- defaultQualifier.forEach(qualifier => {
54
- if (!property.qualifiers.find(t => t.attribute === qualifier.attribute)) {
55
- property.qualifiers.push(qualifier);
56
- }
57
- });
58
- properties = [property];
59
- }
60
- const protos = [];
61
- for (const property of properties) {
62
- const creator = this.getPrototypeCreator(property.protoImplType);
63
- if (!creator) {
64
- throw new Error(`not found proto creator for type: ${property.protoImplType}`);
65
- }
66
- const ctx = {
67
- clazz,
68
- loadUnit,
69
- prototypeInfo: property,
70
- };
71
- const proto = creator(ctx);
72
- // TODO release egg prototype
73
- await EggPrototypeLifecycleUtil.objectPreCreate(ctx, proto);
74
- if (proto.init) {
75
- await proto.init(ctx);
76
- }
77
- await EggPrototypeLifecycleUtil.objectPostCreate(ctx, proto);
78
- PrototypeUtil.setClazzProto(clazz, proto);
79
- protos.push(proto);
80
- }
81
- return protos;
82
- }
83
- static async createProtoByDescriptor(protoDescriptor, loadUnit) {
84
- const creator = this.getPrototypeCreator(protoDescriptor.protoImplType);
85
- if (!creator) {
86
- throw new Error(`not found proto creator for type: ${protoDescriptor.protoImplType}`);
87
- }
88
- const ctx = {
89
- clazz: protoDescriptor.clazz,
90
- loadUnit,
91
- prototypeInfo: protoDescriptor,
92
- };
93
- const proto = creator(ctx);
94
- await EggPrototypeLifecycleUtil.objectPreCreate(ctx, proto);
95
- if (proto.init) {
96
- await proto.init(ctx);
97
- }
98
- await EggPrototypeLifecycleUtil.objectPostCreate(ctx, proto);
99
- PrototypeUtil.setClazzProto(protoDescriptor.clazz, proto);
100
- return proto;
101
- }
102
- }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnUHJvdG90eXBlQ3JlYXRvckZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJFZ2dQcm90b3R5cGVDcmVhdG9yRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLDhCQUE4QixFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBU2xILE9BQU8sRUFBRSx5QkFBeUIsRUFBd0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRixNQUFNLE9BQU8sMEJBQTBCO0lBQzdCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7SUFFbkUsTUFBTSxDQUFDLHdCQUF3QixDQUFDLElBQVksRUFBRSxPQUE0QjtRQUN4RSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFZO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQXdCLEVBQUUsUUFBa0I7UUFDbkUsSUFBSSxVQUFVLEdBQXVCLEVBQUUsQ0FBQztRQUN4QyxNQUFNLCtCQUErQixHQUFHLE1BQU0sYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDN0UsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRO1lBQzNCLFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSTtTQUMxQixDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUM7Z0JBQ3hCLFNBQVMsRUFBRSwwQkFBMEI7Z0JBQ3JDLEtBQUssRUFBRSwrQkFBZ0M7YUFDeEMsRUFBRTtnQkFDRCxTQUFTLEVBQUUsOEJBQThCO2dCQUN6QyxL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
@@ -1,52 +0,0 @@
1
- import { MapUtil } from '@eggjs/tegg-common-util';
2
- import { AccessLevel } from '@eggjs/tegg-types';
3
- import { FrameworkErrorFormater } from 'egg-errors';
4
- import { EggPrototypeNotFound, MultiPrototypeFound } from '../errors.js';
5
- export class EggPrototypeFactory {
6
- static instance = new EggPrototypeFactory();
7
- // Map<EggObjectInitTypeLike, Map<protoName, EggPrototype>>
8
- publicProtoMap = new Map();
9
- registerPrototype(proto, loadUnit) {
10
- if (proto.accessLevel === AccessLevel.PUBLIC) {
11
- const protoList = MapUtil.getOrStore(this.publicProtoMap, proto.name, []);
12
- protoList.push(proto);
13
- }
14
- loadUnit.registerEggPrototype(proto);
15
- }
16
- deletePrototype(proto, loadUnit) {
17
- if (proto.accessLevel === AccessLevel.PUBLIC) {
18
- const protos = this.publicProtoMap.get(proto.name);
19
- if (protos) {
20
- const index = protos.indexOf(proto);
21
- if (index !== -1) {
22
- protos.splice(index, 1);
23
- }
24
- }
25
- }
26
- loadUnit.deletePrototype(proto);
27
- }
28
- getPrototype(name, loadUnit, qualifiers) {
29
- qualifiers = qualifiers || [];
30
- const protos = this.doGetPrototype(name, qualifiers, loadUnit);
31
- if (!protos.length) {
32
- throw FrameworkErrorFormater.formatError(new EggPrototypeNotFound(name, loadUnit?.id));
33
- }
34
- if (protos.length === 1) {
35
- return protos[0];
36
- }
37
- throw FrameworkErrorFormater.formatError(new MultiPrototypeFound(name, qualifiers));
38
- }
39
- doGetPrototype(name, qualifiers, loadUnit) {
40
- if (loadUnit) {
41
- // 1. find private proto in load unit
42
- const protos = loadUnit.getEggPrototype(name, qualifiers);
43
- if (protos.length) {
44
- return protos;
45
- }
46
- }
47
- // 2. find public proto in global
48
- const protos = this.publicProtoMap.get(name);
49
- return protos?.filter(proto => proto.verifyQualifiers(qualifiers)) || [];
50
- }
51
- }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnUHJvdG90eXBlRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ1Byb3RvdHlwZUZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpFLE1BQU0sT0FBTyxtQkFBbUI7SUFDdkIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7SUFFbkQsMkRBQTJEO0lBQ25ELGNBQWMsR0FBMEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVuRSxpQkFBaUIsQ0FBQyxLQUFtQixFQUFFLFFBQWtCO1FBQzlELElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUUsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBQ0QsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxlQUFlLENBQUMsS0FBbUIsRUFBRSxRQUFrQjtRQUM1RCxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBaUIsRUFBRSxRQUFtQixFQUFFLFVBQTRCO1FBQ3RGLFVBQVUsR0FBRyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sc0JBQXNCLENBQUMsV0FBVyxDQUFDLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sc0JBQXNCLENBQUMsV0FBVyxDQUFDLElBQUksbUJBQW1CLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFzQixFQUFFLFVBQTJCLEVBQUUsUUFBbUI7UUFDN0YsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLHFDQUFxQztZQUNyQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUMxRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7UUFFRCxpQ0FBaUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsT0FBTyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNFLENBQUMifQ==
@@ -1,59 +0,0 @@
1
- import { LoadUnitLifecycleUtil } from '../model/index.js';
2
- export class LoadUnitFactory {
3
- static loadUnitCreatorMap = new Map();
4
- static loadUnitMap = new Map();
5
- static loadUnitIdMap = new Map();
6
- static async getLoanUnit(ctx, type) {
7
- const creator = LoadUnitFactory.loadUnitCreatorMap.get(type);
8
- if (!creator) {
9
- throw new Error(`not find creator for load unit type ${type}`);
10
- }
11
- return await creator(ctx);
12
- }
13
- static async createLoadUnit(unitPath, type, loader) {
14
- if (LoadUnitFactory.loadUnitMap.has(unitPath)) {
15
- return LoadUnitFactory.loadUnitMap.get(unitPath).loadUnit;
16
- }
17
- const ctx = {
18
- unitPath,
19
- loader,
20
- };
21
- const loadUnit = await LoadUnitFactory.getLoanUnit(ctx, type);
22
- await LoadUnitLifecycleUtil.objectPreCreate(ctx, loadUnit);
23
- if (loadUnit.init) {
24
- await loadUnit.init(ctx);
25
- }
26
- await LoadUnitLifecycleUtil.objectPostCreate(ctx, loadUnit);
27
- LoadUnitFactory.loadUnitMap.set(unitPath, { loadUnit, ctx });
28
- LoadUnitFactory.loadUnitIdMap.set(loadUnit.id, loadUnit);
29
- return loadUnit;
30
- }
31
- static async createPreloadLoadUnit(unitPath, type, loader) {
32
- const ctx = {
33
- unitPath,
34
- loader,
35
- };
36
- return await LoadUnitFactory.getLoanUnit(ctx, type);
37
- }
38
- static async destroyLoadUnit(loadUnit) {
39
- const { ctx } = LoadUnitFactory.loadUnitMap.get(loadUnit.unitPath);
40
- try {
41
- await LoadUnitLifecycleUtil.objectPreDestroy(ctx, loadUnit);
42
- if (loadUnit.destroy) {
43
- await loadUnit.destroy(ctx);
44
- }
45
- }
46
- finally {
47
- LoadUnitFactory.loadUnitMap.delete(loadUnit.unitPath);
48
- LoadUnitFactory.loadUnitIdMap.delete(loadUnit.id);
49
- LoadUnitLifecycleUtil.clearObjectLifecycle(loadUnit);
50
- }
51
- }
52
- static getLoadUnitById(id) {
53
- return LoadUnitFactory.loadUnitIdMap.get(id);
54
- }
55
- static registerLoadUnitCreator(type, creator) {
56
- LoadUnitFactory.loadUnitCreatorMap.set(type, creator);
57
- }
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZFVuaXRGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTG9hZFVuaXRGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE1BQU0sT0FBTyxlQUFlO0lBQ2xCLE1BQU0sQ0FBQyxrQkFBa0IsR0FBOEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqRixNQUFNLENBQUMsV0FBVyxHQUE4QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzFELE1BQU0sQ0FBQyxhQUFhLEdBQXNCLElBQUksR0FBRyxFQUFFLENBQUM7SUFFbEQsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBNkIsRUFBRSxJQUF5QjtRQUN6RixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQWdCLEVBQUUsSUFBeUIsRUFBRSxNQUFjO1FBQ3JGLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLGVBQWUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBRSxDQUFDLFFBQVEsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQTZCO1lBQ3BDLFFBQVE7WUFDUixNQUFNO1NBQ1AsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sZUFBZSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUQsTUFBTSxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNELElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsTUFBTSxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUQsZUFBZSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDN0QsZUFBZSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN6RCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxRQUFnQixFQUFFLElBQXlCLEVBQUUsTUFBYztRQUM1RixNQUFNLEdBQUcsR0FBNkI7WUFDcEMsUUFBUTtZQUNSLE1BQU07U0FDUCxDQUFDO1FBQ0YsT0FBTyxNQUFNLGVBQWUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxRQUFrQjtRQUM3QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBRSxDQUFDO1FBQ3BFLElBQUksQ0FBQztZQUNILE1BQU0scUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzVELElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNyQixNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUM7Z0JBQVMsQ0FBQztZQUNULGVBQWUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0RCxlQUFlLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEQscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQU07UUFDM0IsT0FBTyxlQUFlLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxDQUFDLHVCQUF1QixDQUFDLElBQXlCLEVBQUUsT0FBd0I7UUFDaEYsZUFBZSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQyJ9
@@ -1,3 +0,0 @@
1
- export * from './EggPrototypeFactory.js';
2
- export * from './EggPrototypeCreatorFactory.js';
3
- export * from './LoadUnitFactory.js';
@@ -1,4 +0,0 @@
1
- export * from './EggPrototypeFactory.js';
2
- export * from './EggPrototypeCreatorFactory.js';
3
- export * from './LoadUnitFactory.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQkFBc0IsQ0FBQyJ9