@eggjs/tegg-runtime 3.52.0 → 4.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +23 -23
- package/{dist/src → src}/factory/EggContainerFactory.d.ts +1 -0
- package/src/factory/EggContainerFactory.js +77 -0
- package/src/factory/EggObjectFactory.js +46 -0
- package/src/factory/LoadUnitInstanceFactory.js +57 -0
- package/src/factory/index.d.ts +3 -0
- package/src/factory/index.js +4 -0
- package/src/impl/ContextInitiator.js +37 -0
- package/src/impl/ContextObjectGraph.js +38 -0
- package/src/impl/EggAlwaysNewObjectContainer.js +32 -0
- package/{dist/src → src}/impl/EggObjectImpl.d.ts +1 -1
- package/src/impl/EggObjectImpl.js +178 -0
- package/src/impl/EggObjectUtil.js +172 -0
- package/src/impl/ModuleLoadUnitInstance.js +90 -0
- package/src/impl/index.d.ts +6 -0
- package/src/impl/index.js +7 -0
- package/src/index.d.ts +5 -0
- package/src/index.js +5 -0
- package/{dist/src → src}/model/AbstractEggContext.d.ts +1 -1
- package/src/model/AbstractEggContext.js +89 -0
- package/src/model/ContextHandler.js +14 -0
- package/src/model/EggContext.js +3 -0
- package/src/model/EggObject.js +3 -0
- package/src/model/LoadUnitInstance.js +3 -0
- package/src/model/index.d.ts +5 -0
- package/src/model/index.js +6 -0
- package/dist/index.d.ts +0 -13
- package/dist/index.js +0 -29
- package/dist/src/factory/EggContainerFactory.js +0 -76
- package/dist/src/factory/EggObjectFactory.js +0 -53
- package/dist/src/factory/LoadUnitInstanceFactory.js +0 -62
- package/dist/src/impl/ContextInitiator.js +0 -39
- package/dist/src/impl/ContextObjectGraph.js +0 -44
- package/dist/src/impl/EggAlwaysNewObjectContainer.js +0 -36
- package/dist/src/impl/EggObjectImpl.js +0 -178
- package/dist/src/impl/EggObjectUtil.js +0 -176
- package/dist/src/impl/ModuleLoadUnitInstance.js +0 -91
- package/dist/src/model/AbstractEggContext.js +0 -96
- package/dist/src/model/ContextHandler.js +0 -19
- package/dist/src/model/EggContext.js +0 -6
- package/dist/src/model/EggObject.js +0 -6
- package/dist/src/model/LoadUnitInstance.js +0 -6
- /package/{dist/src → src}/factory/EggObjectFactory.d.ts +0 -0
- /package/{dist/src → src}/factory/LoadUnitInstanceFactory.d.ts +0 -0
- /package/{dist/src → src}/impl/ContextInitiator.d.ts +0 -0
- /package/{dist/src → src}/impl/ContextObjectGraph.d.ts +0 -0
- /package/{dist/src → src}/impl/EggAlwaysNewObjectContainer.d.ts +0 -0
- /package/{dist/src → src}/impl/EggObjectUtil.d.ts +0 -0
- /package/{dist/src → src}/impl/ModuleLoadUnitInstance.d.ts +0 -0
- /package/{dist/src → src}/model/ContextHandler.d.ts +0 -0
- /package/{dist/src → src}/model/EggContext.d.ts +0 -0
- /package/{dist/src → src}/model/EggObject.d.ts +0 -0
- /package/{dist/src → src}/model/LoadUnitInstance.d.ts +0 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { EggContainerFactory } from '../factory/index.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0VXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ09iamVjdFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFNBQW9CO1FBQzlDLE9BQU87WUFDTCxHQUFHO2dCQUNELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUN2QixDQUFDO1lBQ0QsWUFBWSxFQUFFLElBQUk7WUFDbEIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsMkJBQTJCLENBQUMsS0FBbUIsRUFBRSxPQUFvQjtRQUMxRSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM3QixLQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRztnQkFDeEIsR0FBRztvQkFDRCxNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNuRSxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3ZCLENBQUM7Z0JBQ0QsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2FBQ2pCLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFvQjtRQUN4QyxJQUFJLElBQVksQ0FBQztRQUNqQixTQUFTLE1BQU07WUFDYixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENB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
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { MapUtil } from '@eggjs/tegg-common-util';
|
|
2
|
+
import { IdenticalUtil } from '@eggjs/tegg-lifecycle';
|
|
3
|
+
import { EggLoadUnitType, ObjectInitType } from '@eggjs/tegg-types';
|
|
4
|
+
import { EggObjectFactory } from '../factory/EggObjectFactory.js';
|
|
5
|
+
import { LoadUnitInstanceFactory } from '../factory/LoadUnitInstanceFactory.js';
|
|
6
|
+
import { LoadUnitInstanceLifecycleUtil } from '../model/LoadUnitInstance.js';
|
|
7
|
+
export class ModuleLoadUnitInstance {
|
|
8
|
+
loadUnit;
|
|
9
|
+
id;
|
|
10
|
+
name;
|
|
11
|
+
protoToCreateMap = [];
|
|
12
|
+
eggObjectMap = new Map();
|
|
13
|
+
eggObjectPromiseMap = new Map();
|
|
14
|
+
constructor(loadUnit) {
|
|
15
|
+
this.loadUnit = loadUnit;
|
|
16
|
+
this.name = loadUnit.name;
|
|
17
|
+
const iterator = this.loadUnit.iterateEggPrototype();
|
|
18
|
+
for (const proto of iterator) {
|
|
19
|
+
if (proto.initType === ObjectInitType.SINGLETON) {
|
|
20
|
+
this.protoToCreateMap.push([
|
|
21
|
+
proto.name, proto,
|
|
22
|
+
]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
this.id = IdenticalUtil.createLoadUnitInstanceId(loadUnit.id);
|
|
26
|
+
}
|
|
27
|
+
iterateProtoToCreate() {
|
|
28
|
+
return this.protoToCreateMap[Symbol.iterator]();
|
|
29
|
+
}
|
|
30
|
+
addProtoToCreate(name, proto) {
|
|
31
|
+
this.protoToCreateMap.push([name, proto]);
|
|
32
|
+
}
|
|
33
|
+
deleteProtoToCreate(name) {
|
|
34
|
+
const index = this.protoToCreateMap.findIndex(([protoName]) => protoName === name);
|
|
35
|
+
if (index !== -1) {
|
|
36
|
+
this.protoToCreateMap.splice(index, 1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async init(ctx) {
|
|
40
|
+
await LoadUnitInstanceLifecycleUtil.objectPreCreate(ctx, this);
|
|
41
|
+
for (const [name, proto] of this.protoToCreateMap) {
|
|
42
|
+
await this.getOrCreateEggObject(name, proto);
|
|
43
|
+
}
|
|
44
|
+
await LoadUnitInstanceLifecycleUtil.objectPostCreate(ctx, this);
|
|
45
|
+
}
|
|
46
|
+
async destroy() {
|
|
47
|
+
const objs = [];
|
|
48
|
+
for (const protoObjMap of this.eggObjectMap.values()) {
|
|
49
|
+
for (const obj of protoObjMap.values()) {
|
|
50
|
+
objs.push(obj);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
this.eggObjectMap.clear();
|
|
54
|
+
await Promise.all(objs.map(async (obj) => {
|
|
55
|
+
await EggObjectFactory.destroyObject(obj);
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
async getOrCreateEggObject(name, proto) {
|
|
59
|
+
if (!this.loadUnit.containPrototype(proto)) {
|
|
60
|
+
throw new Error('load unit not contain proto');
|
|
61
|
+
}
|
|
62
|
+
const protoObjMap = MapUtil.getOrStore(this.eggObjectMap, proto.id, new Map());
|
|
63
|
+
if (!protoObjMap.has(name)) {
|
|
64
|
+
const protoObjPromiseMap = MapUtil.getOrStore(this.eggObjectPromiseMap, proto.id, new Map());
|
|
65
|
+
if (!protoObjPromiseMap.has(name)) {
|
|
66
|
+
const objPromise = EggObjectFactory.createObject(name, proto);
|
|
67
|
+
protoObjPromiseMap.set(name, objPromise);
|
|
68
|
+
const obj = await objPromise;
|
|
69
|
+
protoObjPromiseMap.delete(name);
|
|
70
|
+
protoObjMap.set(name, obj);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
await protoObjPromiseMap.get(name);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return protoObjMap.get(name);
|
|
77
|
+
}
|
|
78
|
+
getEggObject(name, proto) {
|
|
79
|
+
const protoObjMap = this.eggObjectMap.get(proto.id);
|
|
80
|
+
if (!protoObjMap || !protoObjMap.has(name)) {
|
|
81
|
+
throw new Error(`EggObject ${String(proto.name)} not found`);
|
|
82
|
+
}
|
|
83
|
+
return protoObjMap.get(name);
|
|
84
|
+
}
|
|
85
|
+
static createModuleLoadUnitInstance(ctx) {
|
|
86
|
+
return new ModuleLoadUnitInstance(ctx.loadUnit);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
LoadUnitInstanceFactory.registerLoadUnitInstanceClass(EggLoadUnitType.MODULE, ModuleLoadUnitInstance.createModuleLoadUnitInstance);
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlTG9hZFVuaXRJbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk1vZHVsZUxvYWRVbml0SW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBV3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTdFLE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsUUFBUSxDQUFXO0lBQ25CLEVBQUUsQ0FBUztJQUNYLElBQUksQ0FBUztJQUNkLGdCQUFnQixHQUF1QyxFQUFFLENBQUM7SUFDMUQsWUFBWSxHQUE4QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3BFLG1CQUFtQixHQUF1RCxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTVGLFlBQVksUUFBa0I7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNyRCxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzdCLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7b0JBQ3pCLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSztp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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './ContextInitiator.js';
|
|
2
|
+
export * from './ContextObjectGraph.js';
|
|
3
|
+
export * from './EggAlwaysNewObjectContainer.js';
|
|
4
|
+
export * from './EggObjectImpl.js';
|
|
5
|
+
export * from './EggObjectUtil.js';
|
|
6
|
+
export * from './ModuleLoadUnitInstance.js';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw2QkFBNkIsQ0FBQyJ9
|
package/src/index.d.ts
ADDED
package/src/index.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from '@eggjs/tegg-types/runtime';
|
|
2
|
+
export * from './model/index.js';
|
|
3
|
+
export * from './impl/index.js';
|
|
4
|
+
export * from './factory/index.js';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDIn0=
|
|
@@ -7,7 +7,7 @@ export declare abstract class AbstractEggContext implements EggRuntimeContext {
|
|
|
7
7
|
private destroyed;
|
|
8
8
|
abstract id: string;
|
|
9
9
|
addProtoToCreate(name: string, proto: EggPrototype): void;
|
|
10
|
-
deleteProtoToCreate(name:
|
|
10
|
+
deleteProtoToCreate(name: string): void;
|
|
11
11
|
destroy(ctx: EggContextLifecycleContext): Promise<void>;
|
|
12
12
|
get(key: string | symbol): any | undefined;
|
|
13
13
|
getEggObject(name: EggPrototypeName, proto: EggPrototype): EggObject;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { ObjectInitType } from '@eggjs/tegg-types';
|
|
2
|
+
import { TeggError } from '@eggjs/tegg-metadata';
|
|
3
|
+
import { MapUtil } from '@eggjs/tegg-common-util';
|
|
4
|
+
import { EggContainerFactory, EggObjectFactory } from '../factory/index.js';
|
|
5
|
+
import { ContextHandler } from './ContextHandler.js';
|
|
6
|
+
import { EggContextLifecycleUtil } from './EggContext.js';
|
|
7
|
+
export class AbstractEggContext {
|
|
8
|
+
contextData = new Map();
|
|
9
|
+
protoToCreate = new Map();
|
|
10
|
+
eggObjectMap = new Map();
|
|
11
|
+
eggObjectPromiseMap = new Map();
|
|
12
|
+
destroyed = false;
|
|
13
|
+
addProtoToCreate(name, proto) {
|
|
14
|
+
this.protoToCreate.set(name, proto);
|
|
15
|
+
}
|
|
16
|
+
deleteProtoToCreate(name) {
|
|
17
|
+
this.protoToCreate.delete(name);
|
|
18
|
+
}
|
|
19
|
+
async destroy(ctx) {
|
|
20
|
+
await EggContextLifecycleUtil.objectPreDestroy(ctx, this);
|
|
21
|
+
const objs = [];
|
|
22
|
+
for (const protoObjMap of this.eggObjectMap.values()) {
|
|
23
|
+
for (const protoObj of protoObjMap.values()) {
|
|
24
|
+
objs.push(protoObj);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
this.eggObjectMap.clear();
|
|
28
|
+
await Promise.all(objs.map(async (obj) => {
|
|
29
|
+
await EggObjectFactory.destroyObject(obj);
|
|
30
|
+
}));
|
|
31
|
+
this.contextData.clear();
|
|
32
|
+
this.destroyed = true;
|
|
33
|
+
await EggContextLifecycleUtil.clearObjectLifecycle(this);
|
|
34
|
+
}
|
|
35
|
+
get(key) {
|
|
36
|
+
return this.contextData.get(key);
|
|
37
|
+
}
|
|
38
|
+
getEggObject(name, proto) {
|
|
39
|
+
if (this.destroyed) {
|
|
40
|
+
throw TeggError.create(`Can not read property \`${String(name)}\` because egg ctx has been destroyed`, 'read_after_ctx_destroyed');
|
|
41
|
+
}
|
|
42
|
+
const protoObjMap = this.eggObjectMap.get(proto.id);
|
|
43
|
+
if (!protoObjMap || !protoObjMap.has(name)) {
|
|
44
|
+
throw new Error(`EggObject ${String(proto.name)} not found`);
|
|
45
|
+
}
|
|
46
|
+
return protoObjMap.get(name);
|
|
47
|
+
}
|
|
48
|
+
async getOrCreateEggObject(name, proto) {
|
|
49
|
+
const protoObjMap = MapUtil.getOrStore(this.eggObjectMap, proto.id, new Map());
|
|
50
|
+
if (!protoObjMap.has(name)) {
|
|
51
|
+
const protoObjPromiseMap = MapUtil.getOrStore(this.eggObjectPromiseMap, proto.id, new Map());
|
|
52
|
+
if (!protoObjPromiseMap.has(name)) {
|
|
53
|
+
const objPromise = EggObjectFactory.createObject(name, proto);
|
|
54
|
+
protoObjPromiseMap.set(name, objPromise);
|
|
55
|
+
const obj = await objPromise;
|
|
56
|
+
protoObjPromiseMap.delete(name);
|
|
57
|
+
if (!protoObjPromiseMap.size) {
|
|
58
|
+
this.eggObjectPromiseMap.delete(proto.id);
|
|
59
|
+
}
|
|
60
|
+
protoObjMap.set(name, obj);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
await protoObjPromiseMap.get(name);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return protoObjMap.get(name);
|
|
67
|
+
}
|
|
68
|
+
async init(ctx) {
|
|
69
|
+
await EggContextLifecycleUtil.objectPreCreate(ctx, this);
|
|
70
|
+
for (const [name, proto] of this.protoToCreate) {
|
|
71
|
+
await this.getOrCreateEggObject(name, proto);
|
|
72
|
+
}
|
|
73
|
+
await EggContextLifecycleUtil.objectPostCreate(ctx, this);
|
|
74
|
+
}
|
|
75
|
+
iterateProtoToCreate() {
|
|
76
|
+
return this.protoToCreate.entries();
|
|
77
|
+
}
|
|
78
|
+
set(key, val) {
|
|
79
|
+
this.contextData.set(key, val);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
EggContainerFactory.registerContainerGetMethod(ObjectInitType.CONTEXT, () => {
|
|
83
|
+
const ctx = ContextHandler.getContext();
|
|
84
|
+
if (!ctx) {
|
|
85
|
+
throw new Error('ctx is required');
|
|
86
|
+
}
|
|
87
|
+
return ctx;
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RFZ2dDb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQWJzdHJhY3RFZ2dDb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRCxNQUFNLE9BQWdCLGtCQUFrQjtJQUM5QixXQUFXLEdBQThCLElBQUksR0FBRyxFQUFFLENBQUM7SUFDbkQsYUFBYSxHQUF3QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQy9ELFlBQVksR0FBOEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNwRSxtQkFBbUIsR0FBdUQsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNwRixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBSTFCLGdCQUFnQixDQUFDLElBQVksRUFBRSxLQUFtQjtRQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQVk7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBK0I7UUFDM0MsTUFBTSx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUQsTUFBTSxJQUFJLEdBQWdCLEVBQUUs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
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
export class ContextHandler {
|
|
3
|
+
static getContextCallback;
|
|
4
|
+
static runInContextCallback;
|
|
5
|
+
static getContext() {
|
|
6
|
+
assert(this.getContextCallback, 'getContextCallback not set');
|
|
7
|
+
return this.getContextCallback ? this.getContextCallback() : undefined;
|
|
8
|
+
}
|
|
9
|
+
static run(context, fn) {
|
|
10
|
+
assert(this.runInContextCallback, 'runInContextCallback not set');
|
|
11
|
+
return this.runInContextCallback(context, fn);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dEhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJDb250ZXh0SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFLakMsTUFBTSxPQUFPLGNBQWM7SUFDekIsTUFBTSxDQUFDLGtCQUFrQixDQUFzQztJQUMvRCxNQUFNLENBQUMsb0JBQW9CLENBQXVCO0lBRWxELE1BQU0sQ0FBQyxVQUFVO1FBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO1FBQzlELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxDQUFVLE9BQTBCLEVBQUUsRUFBb0I7UUFDbEUsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { LifecycleUtil } from '@eggjs/tegg-lifecycle';
|
|
2
|
+
export const EggContextLifecycleUtil = new LifecycleUtil();
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ0NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksYUFBYSxFQUFpRCxDQUFDIn0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { LifecycleUtil } from '@eggjs/tegg-lifecycle';
|
|
2
|
+
export const EggObjectLifecycleUtil = new LifecycleUtil();
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRWdnT2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd0RCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGFBQWEsRUFBd0MsQ0FBQyJ9
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { LifecycleUtil } from '@eggjs/tegg-lifecycle';
|
|
2
|
+
export const LoadUnitInstanceLifecycleUtil = new LifecycleUtil();
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZFVuaXRJbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkxvYWRVbml0SW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksYUFBYSxFQUFzRCxDQUFDIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './AbstractEggContext.js';
|
|
2
|
+
export * from './ContextHandler.js';
|
|
3
|
+
export * from './EggContext.js';
|
|
4
|
+
export * from './EggObject.js';
|
|
5
|
+
export * from './LoadUnitInstance.js';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsdUJBQXVCLENBQUMifQ==
|
package/dist/index.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export * from '@eggjs/tegg-types/runtime';
|
|
2
|
-
export { EggRuntimeContext as EggContext } from '@eggjs/tegg-types/runtime';
|
|
3
|
-
export * from './src/model/EggContext';
|
|
4
|
-
export * from './src/model/AbstractEggContext';
|
|
5
|
-
export * from './src/model/LoadUnitInstance';
|
|
6
|
-
export * from './src/model/EggObject';
|
|
7
|
-
export * from './src/factory/EggContainerFactory';
|
|
8
|
-
export * from './src/factory/EggObjectFactory';
|
|
9
|
-
export * from './src/factory/LoadUnitInstanceFactory';
|
|
10
|
-
export * from './src/impl/ModuleLoadUnitInstance';
|
|
11
|
-
export * from './src/model/ContextHandler';
|
|
12
|
-
import './src/impl/EggAlwaysNewObjectContainer';
|
|
13
|
-
import './src/impl/ModuleLoadUnitInstance';
|
package/dist/index.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("@eggjs/tegg-types/runtime"), exports);
|
|
18
|
-
__exportStar(require("./src/model/EggContext"), exports);
|
|
19
|
-
__exportStar(require("./src/model/AbstractEggContext"), exports);
|
|
20
|
-
__exportStar(require("./src/model/LoadUnitInstance"), exports);
|
|
21
|
-
__exportStar(require("./src/model/EggObject"), exports);
|
|
22
|
-
__exportStar(require("./src/factory/EggContainerFactory"), exports);
|
|
23
|
-
__exportStar(require("./src/factory/EggObjectFactory"), exports);
|
|
24
|
-
__exportStar(require("./src/factory/LoadUnitInstanceFactory"), exports);
|
|
25
|
-
__exportStar(require("./src/impl/ModuleLoadUnitInstance"), exports);
|
|
26
|
-
__exportStar(require("./src/model/ContextHandler"), exports);
|
|
27
|
-
require("./src/impl/EggAlwaysNewObjectContainer");
|
|
28
|
-
require("./src/impl/ModuleLoadUnitInstance");
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNERBQTBDO0FBRTFDLHlEQUF1QztBQUN2QyxpRUFBK0M7QUFDL0MsK0RBQTZDO0FBQzdDLHdEQUFzQztBQUV0QyxvRUFBa0Q7QUFDbEQsaUVBQStDO0FBQy9DLHdFQUFzRDtBQUN0RCxvRUFBa0Q7QUFDbEQsNkRBQTJDO0FBRTNDLGtEQUFnRDtBQUNoRCw2Q0FBMkMifQ==
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EggContainerFactory = void 0;
|
|
4
|
-
const tegg_metadata_1 = require("@eggjs/tegg-metadata");
|
|
5
|
-
const core_decorator_1 = require("@eggjs/core-decorator");
|
|
6
|
-
const ContextHandler_1 = require("../model/ContextHandler");
|
|
7
|
-
const ContextInitiator_1 = require("../impl/ContextInitiator");
|
|
8
|
-
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
9
|
-
class EggContainerFactory {
|
|
10
|
-
static registerContainerGetMethod(initType, method) {
|
|
11
|
-
this.containerGetMethodMap.set(initType, method);
|
|
12
|
-
}
|
|
13
|
-
static getContainer(proto) {
|
|
14
|
-
const method = this.containerGetMethodMap.get(proto.initType);
|
|
15
|
-
if (!method) {
|
|
16
|
-
throw new Error(`InitType ${proto.initType} has not register ContainerGetMethod`);
|
|
17
|
-
}
|
|
18
|
-
return method(proto);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* get or create egg object
|
|
22
|
-
* If get singleton egg object in context,
|
|
23
|
-
* will create context egg object for it.
|
|
24
|
-
*/
|
|
25
|
-
static async getOrCreateEggObject(proto, name) {
|
|
26
|
-
const container = this.getContainer(proto);
|
|
27
|
-
name = name || proto.name;
|
|
28
|
-
const obj = await container.getOrCreateEggObject(name, proto);
|
|
29
|
-
const ctx = ContextHandler_1.ContextHandler.getContext();
|
|
30
|
-
if (ctx) {
|
|
31
|
-
const initiator = ContextInitiator_1.ContextInitiator.createContextInitiator(ctx);
|
|
32
|
-
await initiator.init(obj);
|
|
33
|
-
}
|
|
34
|
-
return obj;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* get or create egg object from the Class
|
|
38
|
-
* If get singleton egg object in context,
|
|
39
|
-
* will create context egg object for it.
|
|
40
|
-
*/
|
|
41
|
-
static async getOrCreateEggObjectFromClazz(clazz, name, qualifiers) {
|
|
42
|
-
let proto = core_decorator_1.PrototypeUtil.getClazzProto(clazz);
|
|
43
|
-
if (core_decorator_1.PrototypeUtil.isEggMultiInstancePrototype(clazz)) {
|
|
44
|
-
const defaultName = tegg_common_util_1.NameUtil.getClassName(clazz);
|
|
45
|
-
name = name !== null && name !== void 0 ? name : defaultName;
|
|
46
|
-
proto = tegg_metadata_1.EggPrototypeFactory.instance.getPrototype(name, undefined, qualifiers);
|
|
47
|
-
}
|
|
48
|
-
else if (proto) {
|
|
49
|
-
name = name !== null && name !== void 0 ? name : proto.name;
|
|
50
|
-
}
|
|
51
|
-
if (!proto) {
|
|
52
|
-
throw new Error(`can not get proto for clazz ${clazz.name}`);
|
|
53
|
-
}
|
|
54
|
-
return await this.getOrCreateEggObject(proto, name);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* get or create egg object from the Name
|
|
58
|
-
* If get singleton egg object in context,
|
|
59
|
-
* will create context egg object for it.
|
|
60
|
-
*/
|
|
61
|
-
static async getOrCreateEggObjectFromName(name, qualifiers) {
|
|
62
|
-
const proto = tegg_metadata_1.EggPrototypeFactory.instance.getPrototype(name, undefined, qualifiers);
|
|
63
|
-
if (!proto) {
|
|
64
|
-
throw new Error(`can not get proto for clazz ${String(name)}`);
|
|
65
|
-
}
|
|
66
|
-
return await this.getOrCreateEggObject(proto, name);
|
|
67
|
-
}
|
|
68
|
-
static getEggObject(proto, name) {
|
|
69
|
-
const container = this.getContainer(proto);
|
|
70
|
-
name = name || proto.name;
|
|
71
|
-
return container.getEggObject(name, proto);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.EggContainerFactory = EggContainerFactory;
|
|
75
|
-
EggContainerFactory.containerGetMethodMap = new Map();
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udGFpbmVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mYWN0b3J5L0VnZ0NvbnRhaW5lckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0RBQTJEO0FBWTNELDBEQUFzRDtBQUN0RCw0REFBeUQ7QUFDekQsK0RBQTREO0FBQzVELDhEQUFtRDtBQUVuRCxNQUFhLG1CQUFtQjtJQUc5QixNQUFNLENBQUMsMEJBQTBCLENBQUMsUUFBNEIsRUFBRSxNQUEwQjtRQUN4RixJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFtQjtRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxDQUFDLFFBQVEsc0NBQXNDLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEtBQW1CLEVBQUUsSUFBb0I7UUFDekUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDMUIsTUFBTSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlELE1BQU0sR0FBRyxHQUFHLCtCQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLE1BQU0sU0FBUyxHQUFHLG1DQUFnQixDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsS0FBd0IsRUFBRSxJQUFvQixFQUFFLFVBQTRCO1FBQ3JILElBQUksS0FBSyxHQUFHLDhCQUFhLENBQUMsYUFBYSxDQUFDLEtBQTBCLENBQTZCLENBQUM7UUFDaEcsSUFBSSw4QkFBYSxDQUFDLDJCQUEyQixDQUFDLEtBQTBCLENBQUMsRUFBRSxDQUFDO1lBQzFFLE1BQU0sV0FBVyxHQUFHLDJCQUFRLENBQUMsWUFBWSxDQUFDLEtBQTBCLENBQUMsQ0FBQztZQUN0RSxJQUFJLEdBQUcsSUFBSSxhQUFKLElBQUksY0FBSixJQUFJLEdBQUksV0FBVyxDQUFDO1lBQzNCLEtBQUssR0FBRyxtQ0FBbUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakYsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxHQUFHLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLENBQUMsSUFBbUIsRUFBRSxVQUE0QjtRQUN6RixNQUFNLEtBQUssR0FBRyxtQ0FBbUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBbUIsRUFBRSxJQUFvQjtRQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQixPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7O0FBckVILGtEQXNFQztBQXJFZ0IseUNBQXFCLEdBQWdELElBQUksR0FBRyxFQUFFLENBQUMifQ==
|