@eggjs/tegg-runtime 4.0.0-beta.3 → 4.0.0-beta.30

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 (58) hide show
  1. package/README.md +12 -0
  2. package/dist/factory/EggContainerFactory.js +90 -0
  3. package/dist/factory/EggObjectFactory.js +46 -0
  4. package/dist/factory/LoadUnitInstanceFactory.js +57 -0
  5. package/dist/factory/index.d.ts +3 -0
  6. package/dist/factory/index.js +4 -0
  7. package/dist/impl/ContextInitiator.js +37 -0
  8. package/dist/impl/ContextObjectGraph.js +38 -0
  9. package/dist/impl/EggAlwaysNewObjectContainer.js +33 -0
  10. package/{src → dist}/impl/EggObjectImpl.js +13 -11
  11. package/dist/impl/EggObjectUtil.js +172 -0
  12. package/dist/impl/ModuleLoadUnitInstance.js +88 -0
  13. package/dist/impl/index.d.ts +6 -0
  14. package/dist/impl/index.js +7 -0
  15. package/{src → dist}/index.d.ts +3 -3
  16. package/dist/index.js +5 -0
  17. package/dist/model/AbstractEggContext.js +93 -0
  18. package/dist/model/ContextHandler.js +14 -0
  19. package/{src → dist}/model/EggContext.d.ts +1 -1
  20. package/dist/model/EggContext.js +3 -0
  21. package/{src → dist}/model/EggObject.d.ts +1 -1
  22. package/dist/model/EggObject.js +3 -0
  23. package/{src → dist}/model/LoadUnitInstance.d.ts +1 -1
  24. package/dist/model/LoadUnitInstance.js +3 -0
  25. package/dist/model/index.d.ts +5 -0
  26. package/dist/model/index.js +6 -0
  27. package/package.json +29 -29
  28. package/src/factory/EggContainerFactory.js +0 -77
  29. package/src/factory/EggObjectFactory.js +0 -46
  30. package/src/factory/LoadUnitInstanceFactory.js +0 -57
  31. package/src/factory/index.d.ts +0 -3
  32. package/src/factory/index.js +0 -4
  33. package/src/impl/ContextInitiator.js +0 -37
  34. package/src/impl/ContextObjectGraph.js +0 -38
  35. package/src/impl/EggAlwaysNewObjectContainer.js +0 -32
  36. package/src/impl/EggObjectUtil.js +0 -172
  37. package/src/impl/ModuleLoadUnitInstance.js +0 -90
  38. package/src/impl/index.d.ts +0 -6
  39. package/src/impl/index.js +0 -7
  40. package/src/index.js +0 -5
  41. package/src/model/AbstractEggContext.js +0 -89
  42. package/src/model/ContextHandler.js +0 -14
  43. package/src/model/EggContext.js +0 -3
  44. package/src/model/EggObject.js +0 -3
  45. package/src/model/LoadUnitInstance.js +0 -3
  46. package/src/model/index.d.ts +0 -5
  47. package/src/model/index.js +0 -6
  48. /package/{src → dist}/factory/EggContainerFactory.d.ts +0 -0
  49. /package/{src → dist}/factory/EggObjectFactory.d.ts +0 -0
  50. /package/{src → dist}/factory/LoadUnitInstanceFactory.d.ts +0 -0
  51. /package/{src → dist}/impl/ContextInitiator.d.ts +0 -0
  52. /package/{src → dist}/impl/ContextObjectGraph.d.ts +0 -0
  53. /package/{src → dist}/impl/EggAlwaysNewObjectContainer.d.ts +0 -0
  54. /package/{src → dist}/impl/EggObjectImpl.d.ts +0 -0
  55. /package/{src → dist}/impl/EggObjectUtil.d.ts +0 -0
  56. /package/{src → dist}/impl/ModuleLoadUnitInstance.d.ts +0 -0
  57. /package/{src → dist}/model/AbstractEggContext.d.ts +0 -0
  58. /package/{src → dist}/model/ContextHandler.d.ts +0 -0
package/README.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # `@eggjs/tegg-runtime`
2
2
 
3
+ [![NPM version][npm-image]][npm-url]
4
+ [![Known Vulnerabilities][snyk-image]][snyk-url]
5
+ [![npm download][download-image]][download-url]
6
+ [![Node.js Version](https://img.shields.io/node/v/@eggjs/tegg-runtime.svg?style=flat)](https://nodejs.org/en/download/)
7
+
8
+ [npm-image]: https://img.shields.io/npm/v/@eggjs/tegg-runtime.svg?style=flat-square
9
+ [npm-url]: https://npmjs.org/package/@eggjs/tegg-runtime
10
+ [snyk-image]: https://snyk.io/test/npm/@eggjs/tegg-runtime/badge.svg?style=flat-square
11
+ [snyk-url]: https://snyk.io/test/npm/@eggjs/tegg-runtime
12
+ [download-image]: https://img.shields.io/npm/dm/@eggjs/tegg-runtime.svg?style=flat-square
13
+ [download-url]: https://npmjs.org/package/@eggjs/tegg-runtime
14
+
3
15
  # Usage
4
16
 
5
17
  This is an internal tegg library, you probably shouldn't use it directly.
@@ -0,0 +1,90 @@
1
+ import { debuglog } from 'node:util';
2
+ import { EggPrototypeFactory } from '@eggjs/metadata';
3
+ import { PrototypeUtil } from '@eggjs/core-decorator';
4
+ import { NameUtil } from '@eggjs/tegg-common-util';
5
+ import { ContextHandler } from "../model/ContextHandler.js";
6
+ const debug = debuglog('tegg/core/runtime/EggContainerFactory');
7
+ export class EggContainerFactory {
8
+ static containerGetMethodMap = new Map();
9
+ static ContextInitiatorClass;
10
+ static registerContainerGetMethod(initType, method) {
11
+ if (debug.enabled) {
12
+ debug('registerContainerGetMethod %o %o, exists: %s', initType, method.toString(), this.containerGetMethodMap.has(initType));
13
+ }
14
+ this.containerGetMethodMap.set(initType, method);
15
+ }
16
+ static getContainer(proto) {
17
+ const method = this.containerGetMethodMap.get(proto.initType);
18
+ if (!method) {
19
+ throw new Error(`InitType ${proto.initType} has not register ContainerGetMethod`);
20
+ }
21
+ return method(proto);
22
+ }
23
+ /**
24
+ * get or create egg object
25
+ * If get singleton egg object in context,
26
+ * will create context egg object for it.
27
+ */
28
+ static async getOrCreateEggObject(proto, name) {
29
+ const container = this.getContainer(proto);
30
+ name = name || proto.name;
31
+ const obj = await container.getOrCreateEggObject(name, proto);
32
+ const ctx = ContextHandler.getContext();
33
+ if (ctx) {
34
+ if (!EggContainerFactory.ContextInitiatorClass) {
35
+ // Dependency cycle between ContextInitiator and EggContainerFactory
36
+ const { ContextInitiator } = await import('../impl/ContextInitiator.js');
37
+ debug('import ContextInitiator to fix dependency cycle');
38
+ EggContainerFactory.ContextInitiatorClass = ContextInitiator;
39
+ }
40
+ const initiator = EggContainerFactory.ContextInitiatorClass.createContextInitiator(ctx);
41
+ await initiator.init(obj);
42
+ debug('getOrCreateEggObject with context eggObject:%o, from proto:%o, name:%s', obj.name, proto.name, name);
43
+ }
44
+ else {
45
+ debug('getOrCreateEggObject without context, get eggObject:%o, from proto:%o, name:%s', obj.name, proto.name, name);
46
+ }
47
+ return obj;
48
+ }
49
+ /**
50
+ * get or create egg object from the Class
51
+ * If get singleton egg object in context,
52
+ * will create context egg object for it.
53
+ */
54
+ static async getOrCreateEggObjectFromClazz(clazz, name, qualifiers) {
55
+ let proto = PrototypeUtil.getClazzProto(clazz);
56
+ const isMultiInstance = PrototypeUtil.isEggMultiInstancePrototype(clazz);
57
+ debug('getOrCreateEggObjectFromClazz:%o, isMultiInstance:%s, proto:%o', clazz.name, isMultiInstance, !!proto);
58
+ if (isMultiInstance) {
59
+ const defaultName = NameUtil.getClassName(clazz);
60
+ name = name ?? defaultName;
61
+ proto = EggPrototypeFactory.instance.getPrototype(name, undefined, qualifiers);
62
+ }
63
+ else if (proto) {
64
+ name = name ?? proto.name;
65
+ }
66
+ if (!proto) {
67
+ debug('getOrCreateEggObjectFromClazz:%o not found, eggObjectName:%s, qualifiers:%o, proto:%o, isMultiInstance:%s', clazz.name, name, qualifiers, proto, isMultiInstance);
68
+ throw new Error(`can not get proto for clazz ${clazz.name}`);
69
+ }
70
+ return await this.getOrCreateEggObject(proto, name);
71
+ }
72
+ /**
73
+ * get or create egg object from the Name
74
+ * If get singleton egg object in context,
75
+ * will create context egg object for it.
76
+ */
77
+ static async getOrCreateEggObjectFromName(name, qualifiers) {
78
+ const proto = EggPrototypeFactory.instance.getPrototype(name, undefined, qualifiers);
79
+ if (!proto) {
80
+ throw new Error(`can not get proto for clazz ${String(name)}`);
81
+ }
82
+ return await this.getOrCreateEggObject(proto, name);
83
+ }
84
+ static getEggObject(proto, name) {
85
+ const container = this.getContainer(proto);
86
+ name = name || proto.name;
87
+ return container.getEggObject(name, proto);
88
+ }
89
+ }
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udGFpbmVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYWN0b3J5L0VnZ0NvbnRhaW5lckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVl0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUc1RCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsdUNBQXVDLENBQUMsQ0FBQztBQUVoRSxNQUFNLE9BQU8sbUJBQW1CO0lBQ3RCLE1BQU0sQ0FBQyxxQkFBcUIsR0FBZ0QsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUN0RixNQUFNLENBQUMscUJBQXFCLENBQThCO0lBRWxFLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxRQUE0QixFQUFFLE1BQTBCO1FBQ3hGLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLEtBQUssQ0FDSCw4Q0FBOEMsRUFDOUMsUUFBUSxFQUNSLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFDakIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FDekMsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFtQjtRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJ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
@@ -0,0 +1,46 @@
1
+ import { LoadUnitFactory } from '@eggjs/metadata';
2
+ import { EggObjectImpl } from "../impl/EggObjectImpl.js";
3
+ import { EggObjectLifecycleUtil } from "../model/EggObject.js";
4
+ import { LoadUnitInstanceFactory } from "./LoadUnitInstanceFactory.js";
5
+ export class EggObjectFactory {
6
+ static eggObjectMap = new Map();
7
+ static eggObjectCreateMap = new Map();
8
+ static registerEggObjectCreateMethod(protoClass, method) {
9
+ this.eggObjectCreateMap.set(protoClass, method);
10
+ }
11
+ static getEggObjectCreateMethod(protoClass) {
12
+ if (this.eggObjectCreateMap.has(protoClass)) {
13
+ return this.eggObjectCreateMap.get(protoClass);
14
+ }
15
+ return EggObjectImpl.createObject;
16
+ }
17
+ static async createObject(name, proto) {
18
+ const loadUnit = LoadUnitFactory.getLoadUnitById(proto.loadUnitId);
19
+ if (!loadUnit) {
20
+ throw new Error(`not found load unit ${proto.loadUnitId}`);
21
+ }
22
+ const loadUnitInstance = LoadUnitInstanceFactory.getLoadUnitInstance(loadUnit);
23
+ const lifecycleContext = {
24
+ loadUnit,
25
+ loadUnitInstance: loadUnitInstance,
26
+ };
27
+ const method = this.getEggObjectCreateMethod(proto.constructor);
28
+ const args = [name, proto, lifecycleContext];
29
+ const obj = await Reflect.apply(method, null, args);
30
+ this.eggObjectMap.set(obj.id, { obj, ctx: lifecycleContext });
31
+ return obj;
32
+ }
33
+ static async destroyObject(obj) {
34
+ const { ctx } = this.eggObjectMap.get(obj.id);
35
+ try {
36
+ if (obj.destroy) {
37
+ await obj.destroy(ctx);
38
+ }
39
+ }
40
+ finally {
41
+ this.eggObjectMap.delete(obj.id);
42
+ EggObjectLifecycleUtil.clearObjectLifecycle(obj);
43
+ }
44
+ }
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYWN0b3J5L0VnZ09iamVjdEZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU92RSxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLE1BQU0sQ0FBQyxZQUFZLEdBQStCLElBQUksR0FBRyxFQUFFLENBQUM7SUFDNUQsTUFBTSxDQUFDLGtCQUFrQixHQUErQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTNFLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxVQUE2QixFQUFFLE1BQTBCO1FBQ25HLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxNQUFNLENBQUMsd0JBQXdCLENBQUMsVUFBNkI7UUFDbEUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLGFBQWEsQ0FBQyxZQUFZLENBQUM7SUFDcEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQW1CLEVBQUUsS0FBbUI7UUFDaEUsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE1BQU0sZ0JBQWdCLEdBQUcsdUJBQXVCLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0UsTUFBTSxnQkFBZ0IsR0FBOEI7WUFDbEQsUUFBUTtZQUNSLGdCQUFnQixFQUFFLGdCQUFpQjtTQUNwQyxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxXQUFnQyxDQUFDLENBQUM7UUFDckYsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDN0MsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzlELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQWM7UUFDdkMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUM7WUFDSCxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUMifQ==
@@ -0,0 +1,57 @@
1
+ import { ObjectInitType } from '@eggjs/tegg-types';
2
+ import { IdenticalUtil } from '@eggjs/lifecycle';
3
+ import { EggContainerFactory } from "./EggContainerFactory.js";
4
+ import { LoadUnitInstanceLifecycleUtil } from "../model/LoadUnitInstance.js";
5
+ export class LoadUnitInstanceFactory {
6
+ static creatorMap = new Map();
7
+ static instanceMap = new Map();
8
+ static registerLoadUnitInstanceClass(type, creator) {
9
+ this.creatorMap.set(type, creator);
10
+ }
11
+ static async createLoadUnitInstance(loadUnit) {
12
+ const creator = this.creatorMap.get(loadUnit.type);
13
+ if (!creator) {
14
+ throw new Error(`load unit instance type ${loadUnit.type} is not implement`);
15
+ }
16
+ const instanceId = IdenticalUtil.createLoadUnitInstanceId(loadUnit.id);
17
+ if (!this.instanceMap.has(instanceId)) {
18
+ const ctx = {
19
+ loadUnit,
20
+ };
21
+ const instance = creator(ctx);
22
+ this.instanceMap.set(instanceId, { instance, ctx });
23
+ if (instance.init) {
24
+ // Module init method will create egg object
25
+ // When inject objects, will find load unit instance
26
+ // so should add instance to instanceMap first
27
+ await instance.init(ctx);
28
+ }
29
+ }
30
+ return this.instanceMap.get(instanceId).instance;
31
+ }
32
+ static getLoadUnitInstance(loadUnit) {
33
+ const instanceId = IdenticalUtil.createLoadUnitInstanceId(loadUnit.id);
34
+ return this.instanceMap.get(instanceId)?.instance;
35
+ }
36
+ static async destroyLoadUnitInstance(loadUnitInstance) {
37
+ const { ctx } = this.instanceMap.get(loadUnitInstance.id);
38
+ await LoadUnitInstanceLifecycleUtil.objectPreDestroy(ctx, loadUnitInstance);
39
+ if (loadUnitInstance.destroy) {
40
+ await loadUnitInstance.destroy(ctx);
41
+ }
42
+ this.instanceMap.delete(loadUnitInstance.id);
43
+ LoadUnitInstanceLifecycleUtil.clearObjectLifecycle(loadUnitInstance);
44
+ }
45
+ static getLoadUnitInstanceByProto(proto) {
46
+ for (const { instance } of this.instanceMap.values()) {
47
+ if (instance.loadUnit.containPrototype(proto)) {
48
+ return instance;
49
+ }
50
+ }
51
+ throw new Error(`not found load unit for proto ${proto.id}`);
52
+ }
53
+ }
54
+ EggContainerFactory.registerContainerGetMethod(ObjectInitType.SINGLETON, (proto) => {
55
+ return LoadUnitInstanceFactory.getLoadUnitInstanceByProto(proto);
56
+ });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZFVuaXRJbnN0YW5jZUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9Mb2FkVW5pdEluc3RhbmNlRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFRbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUTdFLE1BQU0sT0FBTyx1QkFBdUI7SUFDMUIsTUFBTSxDQUFDLFVBQVUsR0FBc0QsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqRixNQUFNLENBQUMsV0FBVyxHQUFzQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTFFLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxJQUF5QixFQUFFLE9BQWdDO1FBQzlGLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxRQUFrQjtRQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsUUFBUSxDQUFDLElBQUksbUJBQW1CLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEdBQUcsR0FBcUM7Z0JBQzVDLFFBQVE7YUFDVCxDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsQiw0Q0FBNEM7Z0JBQzVDLG9EQUFvRDtnQkFDcEQsOENBQThDO2dCQUM5QyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDLFFBQVEsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQWtCO1FBQzNDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDcEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsZ0JBQWtDO1FBQ3JFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUUsQ0FBQztRQUMzRCxNQUFNLDZCQUE2QixDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVFLElBQUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLDZCQUE2QixDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxLQUFtQjtRQUNuRCxLQUFLLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDckQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7QUFHSCxtQkFBbUIsQ0FBQywwQkFBMEIsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBbUIsRUFBRSxFQUFFO0lBQy9GLE9BQU8sdUJBQXVCLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkUsQ0FBQyxDQUFDLENBQUMifQ==
@@ -0,0 +1,3 @@
1
+ export * from './EggContainerFactory.ts';
2
+ export * from './EggObjectFactory.ts';
3
+ export * from './LoadUnitInstanceFactory.ts';
@@ -0,0 +1,4 @@
1
+ export * from "./EggContainerFactory.js";
2
+ export * from "./EggObjectFactory.js";
3
+ export * from "./LoadUnitInstanceFactory.js";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmFjdG9yeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw4QkFBOEIsQ0FBQyJ9
@@ -0,0 +1,37 @@
1
+ import { LoadUnitFactory } from '@eggjs/metadata';
2
+ import { ContextObjectGraph } from "./ContextObjectGraph.js";
3
+ import { EggContainerFactory } from "../factory/EggContainerFactory.js";
4
+ const CONTEXT_INITIATOR = Symbol('EggContext#ContextInitiator');
5
+ export class ContextInitiator {
6
+ eggContext;
7
+ eggObjectInitRecorder;
8
+ constructor(eggContext) {
9
+ this.eggContext = eggContext;
10
+ this.eggObjectInitRecorder = new WeakMap();
11
+ this.eggContext.set(CONTEXT_INITIATOR, this);
12
+ }
13
+ async init(obj) {
14
+ if (this.eggObjectInitRecorder.get(obj) === true) {
15
+ return;
16
+ }
17
+ this.eggObjectInitRecorder.set(obj, true);
18
+ const injectObjectProtos = ContextObjectGraph.getContextProto(obj.proto);
19
+ await Promise.all(injectObjectProtos.map(async (injectObject) => {
20
+ const proto = injectObject.proto;
21
+ const loadUnit = LoadUnitFactory.getLoadUnitById(proto.loadUnitId);
22
+ if (!loadUnit) {
23
+ throw new Error(`can not find load unit: ${proto.loadUnitId}`);
24
+ }
25
+ await EggContainerFactory.getOrCreateEggObject(proto, injectObject.objName);
26
+ }));
27
+ }
28
+ static createContextInitiator(context) {
29
+ let initiator = context.get(CONTEXT_INITIATOR);
30
+ if (!initiator) {
31
+ initiator = new ContextInitiator(context);
32
+ context.set(CONTEXT_INITIATOR, initiator);
33
+ }
34
+ return initiator;
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dEluaXRpYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBsL0NvbnRleHRJbml0aWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXhFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7QUFFaEUsTUFBTSxPQUFPLGdCQUFnQjtJQUNWLFVBQVUsQ0FBb0I7SUFDOUIscUJBQXFCLENBQThCO0lBRXBFLFlBQVksVUFBNkI7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBYztRQUN2QixJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDakQsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQyxNQUFNLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEVBQUU7WUFDNUMsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUNqQyxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDakUsQ0FBQztZQUNELE1BQU0sbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxPQUEwQjtRQUN0RCxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsU0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIn0=
@@ -0,0 +1,38 @@
1
+ import { ObjectInitType } from '@eggjs/tegg-types';
2
+ class InjectProtoHolder {
3
+ idSet = new Set();
4
+ injectProtos = [];
5
+ addInjectProto(injectObjectProto) {
6
+ const id = `${String(injectObjectProto.objName)}:${injectObjectProto.proto.id}`;
7
+ if (this.idSet.has(id)) {
8
+ return;
9
+ }
10
+ this.idSet.add(id);
11
+ this.injectProtos.push(injectObjectProto);
12
+ }
13
+ dumpProtos() {
14
+ return this.injectProtos;
15
+ }
16
+ }
17
+ export class ContextObjectGraph {
18
+ static eggObjectInitRecorder = new WeakMap();
19
+ static getContextProto(proto) {
20
+ if (ContextObjectGraph.eggObjectInitRecorder.has(proto)) {
21
+ return ContextObjectGraph.eggObjectInitRecorder.get(proto);
22
+ }
23
+ const holder = new InjectProtoHolder();
24
+ this.doGetContextProto(proto, holder);
25
+ const injectObjectProtos = holder.dumpProtos();
26
+ ContextObjectGraph.eggObjectInitRecorder.set(proto, injectObjectProtos);
27
+ return injectObjectProtos;
28
+ }
29
+ static doGetContextProto(proto, holder) {
30
+ for (const injectObject of proto.injectObjects) {
31
+ if (injectObject.proto.initType === ObjectInitType.CONTEXT && proto.initType !== ObjectInitType.CONTEXT) {
32
+ holder.addInjectProto(injectObject);
33
+ }
34
+ ContextObjectGraph.doGetContextProto(injectObject.proto, holder);
35
+ }
36
+ }
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dE9iamVjdEdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcGwvQ29udGV4dE9iamVjdEdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRCxNQUFNLGlCQUFpQjtJQUNiLEtBQUssR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUMvQixZQUFZLEdBQTZCLEVBQUUsQ0FBQztJQUVwRCxjQUFjLENBQUMsaUJBQW9DO1FBQ2pELE1BQU0sRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNoRixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFDckIsTUFBTSxDQUFDLHFCQUFxQixHQUFvRCxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRXRHLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBbUI7UUFDeEMsSUFBSSxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxPQUFPLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0Msa0JBQWtCLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFtQixFQUFFLE1BQXlCO1FBQzdFLEtBQUssTUFBTSxZQUFZLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQy9DLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssY0FBYyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDeEcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQ0Qsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQyJ9
@@ -0,0 +1,33 @@
1
+ import { ObjectInitType } from '@eggjs/tegg-types';
2
+ import { EggObjectFactory } from "../factory/EggObjectFactory.js";
3
+ import { EggContainerFactory } from "../factory/EggContainerFactory.js";
4
+ export class EggAlwaysNewObjectContainer {
5
+ static instance = new EggAlwaysNewObjectContainer();
6
+ id;
7
+ constructor() {
8
+ this.id = 'ALWAYS_NEW_OBJECT_CONTAINER';
9
+ }
10
+ addProtoToCreate() {
11
+ return;
12
+ }
13
+ deleteProtoToCreate() {
14
+ return;
15
+ }
16
+ iterateProtoToCreate() {
17
+ return new Map().entries();
18
+ }
19
+ getEggObject() {
20
+ throw new Error('Always Object can not use getEggObject, should use getOrCreateEggObject');
21
+ }
22
+ async getOrCreateEggObject(name, proto) {
23
+ return EggObjectFactory.createObject(name, proto);
24
+ }
25
+ async destroy() {
26
+ // do nothing
27
+ }
28
+ async init() {
29
+ // do nothing
30
+ }
31
+ }
32
+ EggContainerFactory.registerContainerGetMethod(ObjectInitType.ALWAYS_NEW, () => EggAlwaysNewObjectContainer.instance);
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQWx3YXlzTmV3T2JqZWN0Q29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcGwvRWdnQWx3YXlzTmV3T2JqZWN0Q29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV4RSxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLE1BQU0sQ0FBQyxRQUFRLEdBQWdDLElBQUksMkJBQTJCLEVBQUUsQ0FBQztJQUN4RSxFQUFFLENBQUs7SUFFaEI7UUFDRSxJQUFJLENBQUMsRUFBRSxHQUFHLDZCQUE2QixDQUFDO0lBQzFDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPO0lBQ1QsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPO0lBQ1QsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsS0FBbUI7UUFDMUQsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLGFBQWE7SUFDZixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixhQUFhO0lBQ2YsQ0FBQzs7QUFHSCxtQkFBbUIsQ0FBQywwQkFBMEIsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDIn0=
@@ -1,9 +1,10 @@
1
- import { LoadUnitFactory } from '@eggjs/tegg-metadata';
1
+ import { LoadUnitFactory } from '@eggjs/metadata';
2
2
  import { EggObjectStatus, InjectType, ObjectInitType } from '@eggjs/tegg-types';
3
- import { IdenticalUtil } from '@eggjs/tegg-lifecycle';
4
- import { EggObjectLifecycleUtil, ContextHandler } from '../model/index.js';
5
- import { EggContainerFactory } from '../factory/index.js';
6
- import { EggObjectUtil } from './EggObjectUtil.js';
3
+ import { IdenticalUtil } from '@eggjs/lifecycle';
4
+ import { EggObjectLifecycleUtil } from "../model/EggObject.js";
5
+ import { ContextHandler } from "../model/ContextHandler.js";
6
+ import { EggContainerFactory } from "../factory/EggContainerFactory.js";
7
+ import { EggObjectUtil } from "./EggObjectUtil.js";
7
8
  export class EggObjectImpl {
8
9
  _obj;
9
10
  status = EggObjectStatus.PENDING;
@@ -42,7 +43,8 @@ export class EggObjectImpl {
42
43
  if (!loadUnit) {
43
44
  throw new Error(`can not find load unit: ${proto.loadUnitId}`);
44
45
  }
45
- if (this.proto.initType !== ObjectInitType.CONTEXT && injectObject.proto.initType === ObjectInitType.CONTEXT) {
46
+ if (this.proto.initType !== ObjectInitType.CONTEXT &&
47
+ injectObject.proto.initType === ObjectInitType.CONTEXT) {
46
48
  this.injectProperty(injectObject.refName, EggObjectUtil.contextEggObjectGetProperty(proto, injectObject.objName));
47
49
  }
48
50
  else {
@@ -81,7 +83,8 @@ export class EggObjectImpl {
81
83
  if (!loadUnit) {
82
84
  throw new Error(`can not find load unit: ${proto.loadUnitId}`);
83
85
  }
84
- if (this.proto.initType !== ObjectInitType.CONTEXT && injectObject.proto.initType === ObjectInitType.CONTEXT) {
86
+ if (this.proto.initType !== ObjectInitType.CONTEXT &&
87
+ injectObject.proto.initType === ObjectInitType.CONTEXT) {
85
88
  return EggObjectUtil.contextEggObjectProxy(proto, injectObject.objName);
86
89
  }
87
90
  const injectObj = await EggContainerFactory.getOrCreateEggObject(proto, injectObject.objName);
@@ -89,14 +92,13 @@ export class EggObjectImpl {
89
92
  }));
90
93
  if (typeof this.proto.multiInstanceConstructorIndex !== 'undefined') {
91
94
  const qualifiers = this.proto.multiInstanceConstructorAttributes
92
- ?.map(t => {
95
+ ?.map((t) => {
93
96
  return {
94
97
  attribute: t,
95
98
  value: this.proto.getQualifier(t),
96
99
  };
97
100
  })
98
- ?.filter(t => typeof t.value !== 'undefined')
99
- ?? [];
101
+ ?.filter((t) => typeof t.value !== 'undefined') ?? [];
100
102
  const objInfo = {
101
103
  name: this.proto.name,
102
104
  qualifiers,
@@ -175,4 +177,4 @@ export class EggObjectImpl {
175
177
  return obj;
176
178
  }
177
179
  }
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0SW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ09iamVjdEltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBUXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxhQUFhO0lBQ2hCLElBQUksQ0FBUztJQUNiLE1BQU0sR0FBb0IsZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUVqRCxLQUFLLENBQWU7SUFDcEIsSUFBSSxDQUFnQjtJQUNwQixFQUFFLENBQVM7SUFFcEIsWUFBWSxJQUFtQixFQUFFLEtBQW1CO1FBQ2xELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsR0FBOEI7UUFDekQsZ0JBQWdCO1FBQ2hCLGtDQUFrQztRQUNsQyxpQkFBaUI7UUFDakIsbUNBQW1DO1FBQ25DLG9CQUFvQjtRQUNwQixJQUFJLENBQUM7WUFDSCxJ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
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0SW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBsL0VnZ09iamVjdEltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBVWxELE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxhQUFhO0lBQ2hCLElBQUksQ0FBUztJQUNiLE1BQU0sR0FBb0IsZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUVqRCxLQUFLLENBQWU7SUFDcEIsSUFBSSxDQUFnQjtJQUNwQixFQUFFLENBQVM7SUFFcEIsWUFBWSxJQUFtQixFQUFFLEtBQW1CO1FBQ2xELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsR0FBOEI7UUFDekQsZ0JBQWdCO1FBQ2hCLGtDQUFrQztRQUNsQyxpQkFBaUI7UUFDakIsbUNBQW1DO1FBQ25DLG9CQUFvQjtRQUNwQixJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUEwQixDQUFDO1lBRXpELGNBQWM7WUFDZCxNQUFNLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEQsWUFBWTtZQUNaLE1BQU0sbUJBQW1CLEdBQ3ZCLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksZUFBZSxDQUFDO1lBQzFGLElBQUksZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxNQUFNLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pELENBQUM7WUFFRCxNQUFNLGVBQWUsR0FBRyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLFdBQVcsQ0FBQztZQUN4RyxJQUFJLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3JELENBQUM7WUFDRCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRTtnQkFDbEQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztnQkFDakMsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25FLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDZCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDakUsQ0FBQztnQkFDRCxJQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLGNBQWMsQ0FBQyxPQUFPO29CQUM5QyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxjQUFjLENBQUMsT0FBTyxFQUN0RCxDQUFDO29CQUNELElBQUksQ0FBQyxjQUFjLENBQ2pCLFlBQVksQ0FBQyxPQUFPLEVBQ3BCLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUN2RSxDQUFDO2dCQUNKLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLFNBQVMsR0FBRyxNQUFNLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzlGLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDM0YsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUNILENBQUM7WUFFRixjQUFjO1lBQ2QsTUFBTSxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFekQsWUFBWTtZQUNaLE1BQU0sZ0JBQWdCLEdBQUcsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUM7WUFDM0csSUFBSSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDO1lBQ3pGLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUN0QyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztZQUNwQyxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLHlCQUF5QixDQUFDLEdBQThCO1FBQzVELHdCQUF3QjtRQUN4QixnQkFBZ0I7UUFDaEIsa0NBQWtDO1FBQ2xDLG1DQUFtQztRQUNuQyxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxhQUFhLEdBQVUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFO2dCQUNuRCxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUNqQyxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRSxDQUFDO2dCQUNELElBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssY0FBYyxDQUFDLE9BQU87b0JBQzlDLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLGNBQWMsQ0FBQyxPQUFPLEVBQ3RELENBQUM7b0JBQ0QsT0FBTyxhQUFhLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUUsQ0FBQztnQkFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzlGLE9BQU8sYUFBYSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsQ0FDSCxDQUFDO1lBQ0YsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEtBQUssV0FBVyxFQUFFLENBQUM7Z0JBQ3BFLE1BQU0sVUFBVSxHQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsa0NBQWtDO29CQUMzQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNWLE9BQU87d0JBQ0wsU0FBUyxFQUFFLENBQUM7d0JBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztxQkFDakIsQ0FBQztnQkFDckIsQ0FBQyxDQUFDO29CQUNGLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMxRCxNQUFNLE9BQU8sR0FBZTtvQkFDMUIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSTtvQkFDckIsVUFBVTtpQkFDWCxDQUFDO2dCQUNGLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDN0UsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO1lBQzVELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQTBCLENBQUM7WUFFekQsY0FBYztZQUNkLE1BQU0sc0JBQXNCLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RCxZQUFZO1lBQ1osTUFBTSxtQkFBbUIsR0FDdkIsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxlQUFlLENBQUM7WUFDMUYsSUFBSSxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekQsQ0FBQztZQUVELE1BQU0sZUFBZSxHQUFHLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDO1lBQ3hHLElBQUksZ0JBQWdCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckQsQ0FBQztZQUVELGNBQWM7WUFDZCxNQUFNLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUV6RCxZQUFZO1lBQ1osTUFBTSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQztZQUMzRyxJQUFJLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0RCxDQUFDO1lBRUQsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUM7WUFDekYsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBQ3RDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO1lBQ3BDLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQThCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JELE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQThCO1FBQzFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDO1lBQ3pDLGNBQWM7WUFDZCxNQUFNLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUV6RCxZQUFZO1lBQ1osTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBMEIsQ0FBQztZQUN6RCxNQUFNLGdCQUFnQixHQUFHLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDO1lBQzNHLElBQUksZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxNQUFNLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RELENBQUM7WUFFRCxNQUFNLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztZQUNsRyxJQUFJLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsSUFBbUIsRUFBRSxVQUE4QjtRQUNoRSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FDdkIsSUFBbUIsRUFDbkIsS0FBbUIsRUFDbkIsZ0JBQTJDO1FBRTNDLE1BQU0sR0FBRyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRiJ9
@@ -0,0 +1,172 @@
1
+ import { EggContainerFactory } from "../factory/EggContainerFactory.js";
2
+ export class EggObjectUtil {
3
+ static eggObjectGetProperty(eggObject) {
4
+ return {
5
+ get() {
6
+ return eggObject.obj;
7
+ },
8
+ configurable: true,
9
+ enumerable: true,
10
+ };
11
+ }
12
+ static contextEggObjectGetProperty(proto, objName) {
13
+ const PROTO_OBJ_GETTER = Symbol(`EggPrototype#objGetter#${String(objName)}`);
14
+ if (!proto[PROTO_OBJ_GETTER]) {
15
+ proto[PROTO_OBJ_GETTER] = {
16
+ get() {
17
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
18
+ return eggObject.obj;
19
+ },
20
+ configurable: true,
21
+ enumerable: true,
22
+ };
23
+ }
24
+ return proto[PROTO_OBJ_GETTER];
25
+ }
26
+ static eggObjectProxy(eggObject) {
27
+ let _obj;
28
+ function getObj() {
29
+ if (!_obj) {
30
+ _obj = eggObject.obj;
31
+ }
32
+ return _obj;
33
+ }
34
+ const proxy = new Proxy({}, {
35
+ defineProperty(_target, property, attributes) {
36
+ const obj = getObj();
37
+ Object.defineProperty(obj, property, attributes);
38
+ return true;
39
+ },
40
+ deleteProperty(_target, p) {
41
+ const obj = getObj();
42
+ delete obj[p];
43
+ return true;
44
+ },
45
+ get(target, p) {
46
+ // make get be lazy
47
+ if (p === 'then')
48
+ return;
49
+ if (Object.prototype[p]) {
50
+ return target[p];
51
+ }
52
+ const obj = getObj();
53
+ const val = obj[p];
54
+ if (typeof val === 'function') {
55
+ return val.bind(obj);
56
+ }
57
+ return val;
58
+ },
59
+ getOwnPropertyDescriptor(_target, p) {
60
+ const obj = getObj();
61
+ return Object.getOwnPropertyDescriptor(obj, p);
62
+ },
63
+ getPrototypeOf() {
64
+ const obj = getObj();
65
+ return Object.getPrototypeOf(obj);
66
+ },
67
+ has(_target, p) {
68
+ const obj = getObj();
69
+ return p in obj;
70
+ },
71
+ isExtensible() {
72
+ const obj = getObj();
73
+ return Object.isExtensible(obj);
74
+ },
75
+ ownKeys() {
76
+ const obj = getObj();
77
+ return Reflect.ownKeys(obj);
78
+ },
79
+ preventExtensions() {
80
+ const obj = getObj();
81
+ Object.preventExtensions(obj);
82
+ return true;
83
+ },
84
+ set(_target, p, newValue) {
85
+ const obj = getObj();
86
+ obj[p] = newValue;
87
+ return true;
88
+ },
89
+ setPrototypeOf(_target, v) {
90
+ const obj = getObj();
91
+ Object.setPrototypeOf(obj, v);
92
+ return true;
93
+ },
94
+ });
95
+ return proxy;
96
+ }
97
+ static contextEggObjectProxy(proto, objName) {
98
+ const PROTO_OBJ_PROXY = Symbol(`EggPrototype#objProxy#${String(objName)}`);
99
+ if (!proto[PROTO_OBJ_PROXY]) {
100
+ proto[PROTO_OBJ_PROXY] = new Proxy({}, {
101
+ defineProperty(_target, property, attributes) {
102
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
103
+ const obj = eggObject.obj;
104
+ Object.defineProperty(obj, property, attributes);
105
+ return true;
106
+ },
107
+ deleteProperty(_target, p) {
108
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
109
+ const obj = eggObject.obj;
110
+ delete obj[p];
111
+ return true;
112
+ },
113
+ get(target, p) {
114
+ // make get be lazy
115
+ if (p === 'then')
116
+ return;
117
+ if (Object.prototype[p]) {
118
+ return target[p];
119
+ }
120
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
121
+ const obj = eggObject.obj;
122
+ return obj[p];
123
+ },
124
+ getOwnPropertyDescriptor(_target, p) {
125
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
126
+ const obj = eggObject.obj;
127
+ return Object.getOwnPropertyDescriptor(obj, p);
128
+ },
129
+ getPrototypeOf() {
130
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
131
+ const obj = eggObject.obj;
132
+ return Object.getPrototypeOf(obj);
133
+ },
134
+ has(_target, p) {
135
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
136
+ const obj = eggObject.obj;
137
+ return p in obj;
138
+ },
139
+ isExtensible() {
140
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
141
+ const obj = eggObject.obj;
142
+ return Object.isExtensible(obj);
143
+ },
144
+ ownKeys() {
145
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
146
+ const obj = eggObject.obj;
147
+ return Reflect.ownKeys(obj);
148
+ },
149
+ preventExtensions() {
150
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
151
+ const obj = eggObject.obj;
152
+ Object.preventExtensions(obj);
153
+ return true;
154
+ },
155
+ set(_target, p, newValue) {
156
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
157
+ const obj = eggObject.obj;
158
+ obj[p] = newValue;
159
+ return true;
160
+ },
161
+ setPrototypeOf(_target, v) {
162
+ const eggObject = EggContainerFactory.getEggObject(proto, objName);
163
+ const obj = eggObject.obj;
164
+ Object.setPrototypeOf(obj, v);
165
+ return true;
166
+ },
167
+ });
168
+ }
169
+ return proto[PROTO_OBJ_PROXY];
170
+ }
171
+ }
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0VXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBsL0VnZ09iamVjdFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFeEUsTUFBTSxPQUFPLGFBQWE7SUFDeEIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFNBQW9CO1FBQzlDLE9BQU87WUFDTCxHQUFHO2dCQUNELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUN2QixDQUFDO1lBQ0QsWUFBWSxFQUFFLElBQUk7WUFDbEIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsMkJBQTJCLENBQUMsS0FBbUIsRUFBRSxPQUFvQjtRQUMxRSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM3QixLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRztnQkFDeEIsR0FBRztvQkFDRCxNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNuRSxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBQ0QsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2FBQ2pCLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFvQjtRQUN4QyxJQUFJLElBQVksQ0FBQztRQUNqQixTQUFTLE1BQU07WUFDYixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxHQUFHLFNB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