@eggjs/tegg-runtime 3.62.0 → 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.
- package/README.md +12 -0
- package/dist/{src/factory → factory}/EggContainerFactory.d.ts +1 -0
- package/dist/factory/EggContainerFactory.js +90 -0
- package/dist/factory/EggObjectFactory.js +46 -0
- package/dist/factory/LoadUnitInstanceFactory.js +57 -0
- package/dist/factory/index.d.ts +3 -0
- package/dist/factory/index.js +4 -0
- package/dist/{src/impl → impl}/ContextInitiator.d.ts +0 -1
- package/dist/impl/ContextInitiator.js +37 -0
- package/dist/impl/ContextObjectGraph.js +38 -0
- package/dist/impl/EggAlwaysNewObjectContainer.js +33 -0
- package/dist/{src/impl → impl}/EggObjectImpl.d.ts +1 -1
- package/dist/impl/EggObjectImpl.js +179 -0
- package/dist/impl/EggObjectUtil.js +172 -0
- package/dist/impl/ModuleLoadUnitInstance.js +90 -0
- package/dist/impl/index.d.ts +6 -0
- package/dist/impl/index.js +7 -0
- package/dist/index.d.ts +4 -12
- package/dist/index.js +5 -29
- package/dist/{src/model → model}/AbstractEggContext.d.ts +1 -1
- package/dist/model/AbstractEggContext.js +93 -0
- package/dist/model/ContextHandler.js +14 -0
- package/dist/model/EggContext.js +3 -0
- package/dist/model/EggObject.js +3 -0
- package/dist/model/LoadUnitInstance.js +3 -0
- package/dist/model/index.d.ts +5 -0
- package/dist/model/index.js +6 -0
- package/package.json +29 -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 -46
- 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/factory → factory}/EggObjectFactory.d.ts +0 -0
- /package/dist/{src/factory → factory}/LoadUnitInstanceFactory.d.ts +0 -0
- /package/dist/{src/impl → impl}/ContextObjectGraph.d.ts +0 -0
- /package/dist/{src/impl → impl}/EggAlwaysNewObjectContainer.d.ts +0 -0
- /package/dist/{src/impl → impl}/EggObjectUtil.d.ts +0 -0
- /package/dist/{src/impl → impl}/ModuleLoadUnitInstance.d.ts +0 -0
- /package/dist/{src/model → model}/ContextHandler.d.ts +0 -0
- /package/dist/{src/model → model}/EggContext.d.ts +0 -0
- /package/dist/{src/model → model}/EggObject.d.ts +0 -0
- /package/dist/{src/model → model}/LoadUnitInstance.d.ts +0 -0
|
@@ -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==
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.EggObjectFactory = void 0;
|
|
7
|
-
const tegg_metadata_1 = require("@eggjs/tegg-metadata");
|
|
8
|
-
const EggObjectImpl_1 = __importDefault(require("../impl/EggObjectImpl"));
|
|
9
|
-
const EggObject_1 = require("../model/EggObject");
|
|
10
|
-
const LoadUnitInstanceFactory_1 = require("./LoadUnitInstanceFactory");
|
|
11
|
-
class EggObjectFactory {
|
|
12
|
-
static registerEggObjectCreateMethod(protoClass, method) {
|
|
13
|
-
this.eggObjectCreateMap.set(protoClass, method);
|
|
14
|
-
}
|
|
15
|
-
static getEggObjectCreateMethod(protoClass) {
|
|
16
|
-
if (this.eggObjectCreateMap.has(protoClass)) {
|
|
17
|
-
return this.eggObjectCreateMap.get(protoClass);
|
|
18
|
-
}
|
|
19
|
-
return EggObjectImpl_1.default.createObject;
|
|
20
|
-
}
|
|
21
|
-
static async createObject(name, proto) {
|
|
22
|
-
const loadUnit = tegg_metadata_1.LoadUnitFactory.getLoadUnitById(proto.loadUnitId);
|
|
23
|
-
if (!loadUnit) {
|
|
24
|
-
throw new Error(`not found load unit ${proto.loadUnitId}`);
|
|
25
|
-
}
|
|
26
|
-
const loadUnitInstance = LoadUnitInstanceFactory_1.LoadUnitInstanceFactory.getLoadUnitInstance(loadUnit);
|
|
27
|
-
const lifecycleContext = {
|
|
28
|
-
loadUnit,
|
|
29
|
-
loadUnitInstance: loadUnitInstance,
|
|
30
|
-
};
|
|
31
|
-
const method = this.getEggObjectCreateMethod(proto.constructor);
|
|
32
|
-
const args = [name, proto, lifecycleContext];
|
|
33
|
-
const obj = await Reflect.apply(method, null, args);
|
|
34
|
-
this.eggObjectMap.set(obj.id, { obj, ctx: lifecycleContext });
|
|
35
|
-
return obj;
|
|
36
|
-
}
|
|
37
|
-
static async destroyObject(obj) {
|
|
38
|
-
const { ctx } = this.eggObjectMap.get(obj.id);
|
|
39
|
-
try {
|
|
40
|
-
if (obj.destroy) {
|
|
41
|
-
await obj.destroy(ctx);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
finally {
|
|
45
|
-
this.eggObjectMap.delete(obj.id);
|
|
46
|
-
EggObject_1.EggObjectLifecycleUtil.clearObjectLifecycle(obj);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.EggObjectFactory = EggObjectFactory;
|
|
51
|
-
EggObjectFactory.eggObjectMap = new Map();
|
|
52
|
-
EggObjectFactory.eggObjectCreateMap = new Map();
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mYWN0b3J5L0VnZ09iamVjdEZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUUEsd0RBQXVEO0FBQ3ZELDBFQUFrRDtBQUNsRCxrREFBNEQ7QUFDNUQsdUVBQW9FO0FBT3BFLE1BQWEsZ0JBQWdCO0lBSXBCLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxVQUE2QixFQUFFLE1BQTBCO1FBQ25HLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxNQUFNLENBQUMsd0JBQXdCLENBQUMsVUFBNkI7UUFDbEUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLHVCQUFhLENBQUMsWUFBWSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFtQixFQUFFLEtBQW1CO1FBQ2hFLE1BQU0sUUFBUSxHQUFHLCtCQUFlLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxpREFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvRSxNQUFNLGdCQUFnQixHQUE4QjtZQUNsRCxRQUFRO1lBQ1IsZ0JBQWdCLEVBQUUsZ0JBQWlCO1NBQ3BDLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLFdBQWdDLENBQUMsQ0FBQztRQUNyRixNQUFNLElBQUksR0FBRyxDQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUUsQ0FBQztRQUMvQyxNQUFNLEdBQUcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBYztRQUN2QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBQy9DLElBQUksQ0FBQztZQUNILElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNoQixNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqQyxrQ0FBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQzs7QUExQ0gsNENBMkNDO0FBMUNRLDZCQUFZLEdBQStCLElBQUksR0FBRyxFQUFFLENBQUM7QUFDckQsbUNBQWtCLEdBQStDLElBQUksR0FBRyxFQUFFLENBQUMifQ==
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LoadUnitInstanceFactory = void 0;
|
|
4
|
-
const LoadUnitInstance_1 = require("../model/LoadUnitInstance");
|
|
5
|
-
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
6
|
-
const tegg_lifecycle_1 = require("@eggjs/tegg-lifecycle");
|
|
7
|
-
const EggContainerFactory_1 = require("./EggContainerFactory");
|
|
8
|
-
class LoadUnitInstanceFactory {
|
|
9
|
-
static registerLoadUnitInstanceClass(type, creator) {
|
|
10
|
-
this.creatorMap.set(type, creator);
|
|
11
|
-
}
|
|
12
|
-
static async createLoadUnitInstance(loadUnit) {
|
|
13
|
-
const creator = this.creatorMap.get(loadUnit.type);
|
|
14
|
-
if (!creator) {
|
|
15
|
-
throw new Error(`load unit instance type ${loadUnit.type} is not implement`);
|
|
16
|
-
}
|
|
17
|
-
const instanceId = tegg_lifecycle_1.IdenticalUtil.createLoadUnitInstanceId(loadUnit.id);
|
|
18
|
-
if (!this.instanceMap.has(instanceId)) {
|
|
19
|
-
const ctx = {
|
|
20
|
-
loadUnit,
|
|
21
|
-
};
|
|
22
|
-
const instance = creator(ctx);
|
|
23
|
-
this.instanceMap.set(instanceId, { instance, ctx });
|
|
24
|
-
if (instance.init) {
|
|
25
|
-
// Module init method will create egg object
|
|
26
|
-
// When inject objects, will find load unit instance
|
|
27
|
-
// so should add instance to instanceMap first
|
|
28
|
-
await instance.init(ctx);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return this.instanceMap.get(instanceId).instance;
|
|
32
|
-
}
|
|
33
|
-
static getLoadUnitInstance(loadUnit) {
|
|
34
|
-
var _a;
|
|
35
|
-
const instanceId = tegg_lifecycle_1.IdenticalUtil.createLoadUnitInstanceId(loadUnit.id);
|
|
36
|
-
return (_a = this.instanceMap.get(instanceId)) === null || _a === void 0 ? void 0 : _a.instance;
|
|
37
|
-
}
|
|
38
|
-
static async destroyLoadUnitInstance(loadUnitInstance) {
|
|
39
|
-
const { ctx } = this.instanceMap.get(loadUnitInstance.id);
|
|
40
|
-
await LoadUnitInstance_1.LoadUnitInstanceLifecycleUtil.objectPreDestroy(ctx, loadUnitInstance);
|
|
41
|
-
if (loadUnitInstance.destroy) {
|
|
42
|
-
await loadUnitInstance.destroy(ctx);
|
|
43
|
-
}
|
|
44
|
-
this.instanceMap.delete(loadUnitInstance.id);
|
|
45
|
-
LoadUnitInstance_1.LoadUnitInstanceLifecycleUtil.clearObjectLifecycle(loadUnitInstance);
|
|
46
|
-
}
|
|
47
|
-
static getLoadUnitInstanceByProto(proto) {
|
|
48
|
-
for (const { instance } of this.instanceMap.values()) {
|
|
49
|
-
if (instance.loadUnit.containPrototype(proto)) {
|
|
50
|
-
return instance;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
throw new Error(`not found load unit for proto ${proto.id}`);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
exports.LoadUnitInstanceFactory = LoadUnitInstanceFactory;
|
|
57
|
-
LoadUnitInstanceFactory.creatorMap = new Map();
|
|
58
|
-
LoadUnitInstanceFactory.instanceMap = new Map();
|
|
59
|
-
EggContainerFactory_1.EggContainerFactory.registerContainerGetMethod(tegg_types_1.ObjectInitType.SINGLETON, (proto) => {
|
|
60
|
-
return LoadUnitInstanceFactory.getLoadUnitInstanceByProto(proto);
|
|
61
|
-
});
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZFVuaXRJbnN0YW5jZUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmFjdG9yeS9Mb2FkVW5pdEluc3RhbmNlRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFBMEU7QUFDMUUsa0RBQW1EO0FBUW5ELDBEQUFzRDtBQUN0RCwrREFBNEQ7QUFRNUQsTUFBYSx1QkFBdUI7SUFJbEMsTUFBTSxDQUFDLDZCQUE2QixDQUFDLElBQXlCLEVBQUUsT0FBZ0M7UUFDOUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFFBQWtCO1FBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixRQUFRLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyw4QkFBYSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEdBQUcsR0FBcUM7Z0JBQzVDLFFBQVE7YUFDVCxDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNsQiw0Q0FBNEM7Z0JBQzVDLG9EQUFvRDtnQkFDcEQsOENBQThDO2dCQUM5QyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDLFFBQVEsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQWtCOztRQUMzQyxNQUFNLFVBQVUsR0FBRyw4QkFBYSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RSxPQUFPLE1BQUEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLDBDQUFFLFFBQVEsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxnQkFBa0M7UUFDckUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBQzNELE1BQU0sZ0RBQTZCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDNUUsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM3QixNQUFNLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0MsZ0RBQTZCLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEtBQW1CO1FBQ25ELEtBQUssTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNyRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDOUMsT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDOztBQXBESCwwREFxREM7QUFwRGdCLGtDQUFVLEdBQXNELElBQUksR0FBRyxFQUFFLENBQUM7QUFDMUUsbUNBQVcsR0FBc0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQXFENUUseUNBQW1CLENBQUMsMEJBQTBCLENBQUMsMkJBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFtQixFQUFFLEVBQUU7SUFDL0YsT0FBTyx1QkFBdUIsQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ContextInitiator = void 0;
|
|
4
|
-
const tegg_metadata_1 = require("@eggjs/tegg-metadata");
|
|
5
|
-
const ContextObjectGraph_1 = require("./ContextObjectGraph");
|
|
6
|
-
const EggContainerFactory_1 = require("../factory/EggContainerFactory");
|
|
7
|
-
const CONTEXT_INITIATOR = Symbol('EggContext#ContextInitiator');
|
|
8
|
-
class ContextInitiator {
|
|
9
|
-
constructor(eggContext) {
|
|
10
|
-
this.eggContext = eggContext;
|
|
11
|
-
this.eggObjectInitRecorder = new WeakMap();
|
|
12
|
-
this.eggObjectInitPromise = new WeakMap();
|
|
13
|
-
this.eggContext.set(CONTEXT_INITIATOR, this);
|
|
14
|
-
}
|
|
15
|
-
async init(obj) {
|
|
16
|
-
if (this.eggObjectInitRecorder.get(obj) === true) {
|
|
17
|
-
if (this.eggObjectInitPromise.has(obj)) {
|
|
18
|
-
await this.eggObjectInitPromise.get(obj);
|
|
19
|
-
}
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
this.eggObjectInitRecorder.set(obj, true);
|
|
23
|
-
const injectObjectProtos = ContextObjectGraph_1.ContextObjectGraph.getContextProto(obj.proto);
|
|
24
|
-
const initPromise = Promise.all(injectObjectProtos.map(async (injectObject) => {
|
|
25
|
-
const proto = injectObject.proto;
|
|
26
|
-
const loadUnit = tegg_metadata_1.LoadUnitFactory.getLoadUnitById(proto.loadUnitId);
|
|
27
|
-
if (!loadUnit) {
|
|
28
|
-
throw new Error(`can not find load unit: ${proto.loadUnitId}`);
|
|
29
|
-
}
|
|
30
|
-
await EggContainerFactory_1.EggContainerFactory.getOrCreateEggObject(proto, injectObject.objName);
|
|
31
|
-
}));
|
|
32
|
-
this.eggObjectInitPromise.set(obj, initPromise);
|
|
33
|
-
await initPromise;
|
|
34
|
-
this.eggObjectInitPromise.delete(obj);
|
|
35
|
-
}
|
|
36
|
-
static createContextInitiator(context) {
|
|
37
|
-
let initiator = context.get(CONTEXT_INITIATOR);
|
|
38
|
-
if (!initiator) {
|
|
39
|
-
initiator = new ContextInitiator(context);
|
|
40
|
-
context.set(CONTEXT_INITIATOR, initiator);
|
|
41
|
-
}
|
|
42
|
-
return initiator;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
exports.ContextInitiator = ContextInitiator;
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dEluaXRpYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbXBsL0NvbnRleHRJbml0aWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0RBQXVEO0FBRXZELDZEQUEwRDtBQUMxRCx3RUFBcUU7QUFFckUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUVoRSxNQUFhLGdCQUFnQjtJQUszQixZQUFZLFVBQTZCO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQWM7UUFDdkIsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2pELElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxrQkFBa0IsR0FBRyx1Q0FBa0IsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxZQUFZLEVBQUMsRUFBRTtZQUMxRSxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLCtCQUFlLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDakUsQ0FBQztZQUNELE1BQU0seUNBQW1CLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDaEQsTUFBTSxXQUFXLENBQUM7UUFDbEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE9BQTBCO1FBQ3RELElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixTQUFTLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUEzQ0QsNENBMkNDIn0=
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ContextObjectGraph = void 0;
|
|
4
|
-
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
5
|
-
class InjectProtoHolder {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.idSet = new Set();
|
|
8
|
-
this.injectProtos = [];
|
|
9
|
-
}
|
|
10
|
-
addInjectProto(injectObjectProto) {
|
|
11
|
-
const id = `${String(injectObjectProto.objName)}:${injectObjectProto.proto.id}`;
|
|
12
|
-
if (this.idSet.has(id)) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
this.idSet.add(id);
|
|
16
|
-
this.injectProtos.push(injectObjectProto);
|
|
17
|
-
}
|
|
18
|
-
dumpProtos() {
|
|
19
|
-
return this.injectProtos;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
class ContextObjectGraph {
|
|
23
|
-
static getContextProto(proto) {
|
|
24
|
-
if (ContextObjectGraph.eggObjectInitRecorder.has(proto)) {
|
|
25
|
-
return ContextObjectGraph.eggObjectInitRecorder.get(proto);
|
|
26
|
-
}
|
|
27
|
-
const holder = new InjectProtoHolder();
|
|
28
|
-
this.doGetContextProto(proto, holder);
|
|
29
|
-
const injectObjectProtos = holder.dumpProtos();
|
|
30
|
-
ContextObjectGraph.eggObjectInitRecorder.set(proto, injectObjectProtos);
|
|
31
|
-
return injectObjectProtos;
|
|
32
|
-
}
|
|
33
|
-
static doGetContextProto(proto, holder) {
|
|
34
|
-
for (const injectObject of proto.injectObjects) {
|
|
35
|
-
if (injectObject.proto.initType === tegg_types_1.ObjectInitType.CONTEXT && proto.initType !== tegg_types_1.ObjectInitType.CONTEXT) {
|
|
36
|
-
holder.addInjectProto(injectObject);
|
|
37
|
-
}
|
|
38
|
-
ContextObjectGraph.doGetContextProto(injectObject.proto, holder);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.ContextObjectGraph = ContextObjectGraph;
|
|
43
|
-
ContextObjectGraph.eggObjectInitRecorder = new WeakMap();
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dE9iamVjdEdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltcGwvQ29udGV4dE9iamVjdEdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtEQUFtRDtBQUduRCxNQUFNLGlCQUFpQjtJQUF2QjtRQUNVLFVBQUssR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMvQixpQkFBWSxHQUE2QixFQUFFLENBQUM7SUFjdEQsQ0FBQztJQVpDLGNBQWMsQ0FBQyxpQkFBb0M7UUFDakQsTUFBTSxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hGLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBRUQsTUFBYSxrQkFBa0I7SUFHN0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFtQjtRQUN4QyxJQUFJLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hELE9BQU8sa0JBQWtCLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDO1FBQzlELENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDeEUsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0lBRU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQW1CLEVBQUUsTUFBeUI7UUFDN0UsS0FBSyxNQUFNLFlBQVksSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDL0MsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSywyQkFBYyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLDJCQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3hHLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUNELGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNILENBQUM7O0FBckJILGdEQXNCQztBQXJCZ0Isd0NBQXFCLEdBQW9ELElBQUksT0FBTyxFQUFFLENBQUMifQ==
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EggAlwaysNewObjectContainer = void 0;
|
|
4
|
-
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
5
|
-
const EggObjectFactory_1 = require("../factory/EggObjectFactory");
|
|
6
|
-
const EggContainerFactory_1 = require("../factory/EggContainerFactory");
|
|
7
|
-
class EggAlwaysNewObjectContainer {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.id = 'ALWAYS_NEW_OBJECT_CONTAINER';
|
|
10
|
-
}
|
|
11
|
-
addProtoToCreate() {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
deleteProtoToCreate() {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
iterateProtoToCreate() {
|
|
18
|
-
return new Map().entries();
|
|
19
|
-
}
|
|
20
|
-
getEggObject() {
|
|
21
|
-
throw new Error('Always Object can not use getEggObject, should use getOrCreateEggObject');
|
|
22
|
-
}
|
|
23
|
-
async getOrCreateEggObject(name, proto) {
|
|
24
|
-
return EggObjectFactory_1.EggObjectFactory.createObject(name, proto);
|
|
25
|
-
}
|
|
26
|
-
async destroy() {
|
|
27
|
-
// do nothing
|
|
28
|
-
}
|
|
29
|
-
async init() {
|
|
30
|
-
// do nothing
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.EggAlwaysNewObjectContainer = EggAlwaysNewObjectContainer;
|
|
34
|
-
EggAlwaysNewObjectContainer.instance = new EggAlwaysNewObjectContainer();
|
|
35
|
-
EggContainerFactory_1.EggContainerFactory.registerContainerGetMethod(tegg_types_1.ObjectInitType.ALWAYS_NEW, () => EggAlwaysNewObjectContainer.instance);
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQWx3YXlzTmV3T2JqZWN0Q29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltcGwvRWdnQWx3YXlzTmV3T2JqZWN0Q29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtEQUFtRDtBQUVuRCxrRUFBK0Q7QUFDL0Qsd0VBQXFFO0FBRXJFLE1BQWEsMkJBQTJCO0lBSXRDO1FBQ0UsSUFBSSxDQUFDLEVBQUUsR0FBRyw2QkFBNkIsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTztJQUNULENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTztJQUNULENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBWSxFQUFFLEtBQW1CO1FBQzFELE9BQU8sbUNBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxhQUFhO0lBQ2YsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsYUFBYTtJQUNmLENBQUM7O0FBbENILGtFQW1DQztBQWxDUSxvQ0FBUSxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQztBQW9DdEQseUNBQW1CLENBQUMsMEJBQTBCLENBQUMsMkJBQWMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUMifQ==
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tegg_metadata_1 = require("@eggjs/tegg-metadata");
|
|
4
|
-
const tegg_types_1 = require("@eggjs/tegg-types");
|
|
5
|
-
const tegg_lifecycle_1 = require("@eggjs/tegg-lifecycle");
|
|
6
|
-
const EggObject_1 = require("../model/EggObject");
|
|
7
|
-
const EggContainerFactory_1 = require("../factory/EggContainerFactory");
|
|
8
|
-
const EggObjectUtil_1 = require("./EggObjectUtil");
|
|
9
|
-
const ContextHandler_1 = require("../model/ContextHandler");
|
|
10
|
-
class EggObjectImpl {
|
|
11
|
-
constructor(name, proto) {
|
|
12
|
-
this.status = tegg_types_1.EggObjectStatus.PENDING;
|
|
13
|
-
this.name = name;
|
|
14
|
-
this.proto = proto;
|
|
15
|
-
const ctx = ContextHandler_1.ContextHandler.getContext();
|
|
16
|
-
this.id = tegg_lifecycle_1.IdenticalUtil.createObjectId(this.proto.id, ctx === null || ctx === void 0 ? void 0 : ctx.id);
|
|
17
|
-
}
|
|
18
|
-
async initWithInjectProperty(ctx) {
|
|
19
|
-
var _a, _b, _c, _d;
|
|
20
|
-
// 1. create obj
|
|
21
|
-
// 2. call obj lifecycle preCreate
|
|
22
|
-
// 3. inject deps
|
|
23
|
-
// 4. call obj lifecycle postCreate
|
|
24
|
-
// 5. success create
|
|
25
|
-
try {
|
|
26
|
-
this._obj = this.proto.constructEggObject();
|
|
27
|
-
const objLifecycleHook = this._obj;
|
|
28
|
-
// global hook
|
|
29
|
-
await EggObject_1.EggObjectLifecycleUtil.objectPreCreate(ctx, this);
|
|
30
|
-
// self hook
|
|
31
|
-
const postConstructMethod = (_a = EggObject_1.EggObjectLifecycleUtil.getLifecycleHook('postConstruct', this.proto)) !== null && _a !== void 0 ? _a : 'postConstruct';
|
|
32
|
-
if (objLifecycleHook[postConstructMethod]) {
|
|
33
|
-
await objLifecycleHook[postConstructMethod](ctx, this);
|
|
34
|
-
}
|
|
35
|
-
const preInjectMethod = (_b = EggObject_1.EggObjectLifecycleUtil.getLifecycleHook('preInject', this.proto)) !== null && _b !== void 0 ? _b : 'preInject';
|
|
36
|
-
if (objLifecycleHook[preInjectMethod]) {
|
|
37
|
-
await objLifecycleHook[preInjectMethod](ctx, this);
|
|
38
|
-
}
|
|
39
|
-
await Promise.all(this.proto.injectObjects.map(async (injectObject) => {
|
|
40
|
-
const proto = injectObject.proto;
|
|
41
|
-
const loadUnit = tegg_metadata_1.LoadUnitFactory.getLoadUnitById(proto.loadUnitId);
|
|
42
|
-
if (!loadUnit) {
|
|
43
|
-
throw new Error(`can not find load unit: ${proto.loadUnitId}`);
|
|
44
|
-
}
|
|
45
|
-
if (this.proto.initType !== tegg_types_1.ObjectInitType.CONTEXT && injectObject.proto.initType === tegg_types_1.ObjectInitType.CONTEXT) {
|
|
46
|
-
this.injectProperty(injectObject.refName, EggObjectUtil_1.EggObjectUtil.contextEggObjectGetProperty(proto, injectObject.objName));
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
const injectObj = await EggContainerFactory_1.EggContainerFactory.getOrCreateEggObject(proto, injectObject.objName);
|
|
50
|
-
this.injectProperty(injectObject.refName, EggObjectUtil_1.EggObjectUtil.eggObjectGetProperty(injectObj));
|
|
51
|
-
}
|
|
52
|
-
}));
|
|
53
|
-
// global hook
|
|
54
|
-
await EggObject_1.EggObjectLifecycleUtil.objectPostCreate(ctx, this);
|
|
55
|
-
// self hook
|
|
56
|
-
const postInjectMethod = (_c = EggObject_1.EggObjectLifecycleUtil.getLifecycleHook('postInject', this.proto)) !== null && _c !== void 0 ? _c : 'postInject';
|
|
57
|
-
if (objLifecycleHook[postInjectMethod]) {
|
|
58
|
-
await objLifecycleHook[postInjectMethod](ctx, this);
|
|
59
|
-
}
|
|
60
|
-
const initMethod = (_d = EggObject_1.EggObjectLifecycleUtil.getLifecycleHook('init', this.proto)) !== null && _d !== void 0 ? _d : 'init';
|
|
61
|
-
if (objLifecycleHook[initMethod]) {
|
|
62
|
-
await objLifecycleHook[initMethod](ctx, this);
|
|
63
|
-
}
|
|
64
|
-
this.status = tegg_types_1.EggObjectStatus.READY;
|
|
65
|
-
}
|
|
66
|
-
catch (e) {
|
|
67
|
-
this.status = tegg_types_1.EggObjectStatus.ERROR;
|
|
68
|
-
throw e;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
async initWithInjectConstructor(ctx) {
|
|
72
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
73
|
-
// 1. create inject deps
|
|
74
|
-
// 2. create obj
|
|
75
|
-
// 3. call obj lifecycle preCreate
|
|
76
|
-
// 4. call obj lifecycle postCreate
|
|
77
|
-
// 5. success create
|
|
78
|
-
try {
|
|
79
|
-
const constructArgs = await Promise.all(this.proto.injectObjects.map(async (injectObject) => {
|
|
80
|
-
const proto = injectObject.proto;
|
|
81
|
-
const loadUnit = tegg_metadata_1.LoadUnitFactory.getLoadUnitById(proto.loadUnitId);
|
|
82
|
-
if (!loadUnit) {
|
|
83
|
-
throw new Error(`can not find load unit: ${proto.loadUnitId}`);
|
|
84
|
-
}
|
|
85
|
-
if (this.proto.initType !== tegg_types_1.ObjectInitType.CONTEXT && injectObject.proto.initType === tegg_types_1.ObjectInitType.CONTEXT) {
|
|
86
|
-
return EggObjectUtil_1.EggObjectUtil.contextEggObjectProxy(proto, injectObject.objName);
|
|
87
|
-
}
|
|
88
|
-
const injectObj = await EggContainerFactory_1.EggContainerFactory.getOrCreateEggObject(proto, injectObject.objName);
|
|
89
|
-
return EggObjectUtil_1.EggObjectUtil.eggObjectProxy(injectObj);
|
|
90
|
-
}));
|
|
91
|
-
if (typeof this.proto.multiInstanceConstructorIndex !== 'undefined') {
|
|
92
|
-
const qualifiers = (_c = (_b = (_a = this.proto.multiInstanceConstructorAttributes) === null || _a === void 0 ? void 0 : _a.map(t => {
|
|
93
|
-
return {
|
|
94
|
-
attribute: t,
|
|
95
|
-
value: this.proto.getQualifier(t),
|
|
96
|
-
};
|
|
97
|
-
})) === null || _b === void 0 ? void 0 : _b.filter(t => typeof t.value !== 'undefined')) !== null && _c !== void 0 ? _c : [];
|
|
98
|
-
const objInfo = {
|
|
99
|
-
name: this.proto.name,
|
|
100
|
-
qualifiers,
|
|
101
|
-
};
|
|
102
|
-
constructArgs.splice(this.proto.multiInstanceConstructorIndex, 0, objInfo);
|
|
103
|
-
}
|
|
104
|
-
this._obj = this.proto.constructEggObject(...constructArgs);
|
|
105
|
-
const objLifecycleHook = this._obj;
|
|
106
|
-
// global hook
|
|
107
|
-
await EggObject_1.EggObjectLifecycleUtil.objectPreCreate(ctx, this);
|
|
108
|
-
// self hook
|
|
109
|
-
const postConstructMethod = (_d = EggObject_1.EggObjectLifecycleUtil.getLifecycleHook('postConstruct', this.proto)) !== null && _d !== void 0 ? _d : 'postConstruct';
|
|
110
|
-
if (objLifecycleHook[postConstructMethod]) {
|
|
111
|
-
await objLifecycleHook[postConstructMethod](ctx, this);
|
|
112
|
-
}
|
|
113
|
-
const preInjectMethod = (_e = EggObject_1.EggObjectLifecycleUtil.getLifecycleHook('preInject', this.proto)) !== null && _e !== void 0 ? _e : 'preInject';
|
|
114
|
-
if (objLifecycleHook[preInjectMethod]) {
|
|
115
|
-
await objLifecycleHook[preInjectMethod](ctx, this);
|
|
116
|
-
}
|
|
117
|
-
// global hook
|
|
118
|
-
await EggObject_1.EggObjectLifecycleUtil.objectPostCreate(ctx, this);
|
|
119
|
-
// self hook
|
|
120
|
-
const postInjectMethod = (_f = EggObject_1.EggObjectLifecycleUtil.getLifecycleHook('postInject', this.proto)) !== null && _f !== void 0 ? _f : 'postInject';
|
|
121
|
-
if (objLifecycleHook[postInjectMethod]) {
|
|
122
|
-
await objLifecycleHook[postInjectMethod](ctx, this);
|
|
123
|
-
}
|
|
124
|
-
const initMethod = (_g = EggObject_1.EggObjectLifecycleUtil.getLifecycleHook('init', this.proto)) !== null && _g !== void 0 ? _g : 'init';
|
|
125
|
-
if (objLifecycleHook[initMethod]) {
|
|
126
|
-
await objLifecycleHook[initMethod](ctx, this);
|
|
127
|
-
}
|
|
128
|
-
this.status = tegg_types_1.EggObjectStatus.READY;
|
|
129
|
-
}
|
|
130
|
-
catch (e) {
|
|
131
|
-
this.status = tegg_types_1.EggObjectStatus.ERROR;
|
|
132
|
-
throw e;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
async init(ctx) {
|
|
136
|
-
if (this.proto.injectType === tegg_types_1.InjectType.CONSTRUCTOR) {
|
|
137
|
-
await this.initWithInjectConstructor(ctx);
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
await this.initWithInjectProperty(ctx);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
async destroy(ctx) {
|
|
144
|
-
var _a, _b;
|
|
145
|
-
if (this.status === tegg_types_1.EggObjectStatus.READY) {
|
|
146
|
-
this.status = tegg_types_1.EggObjectStatus.DESTROYING;
|
|
147
|
-
// global hook
|
|
148
|
-
await EggObject_1.EggObjectLifecycleUtil.objectPreDestroy(ctx, this);
|
|
149
|
-
// self hook
|
|
150
|
-
const objLifecycleHook = this._obj;
|
|
151
|
-
const preDestroyMethod = (_a = EggObject_1.EggObjectLifecycleUtil.getLifecycleHook('preDestroy', this.proto)) !== null && _a !== void 0 ? _a : 'preDestroy';
|
|
152
|
-
if (objLifecycleHook[preDestroyMethod]) {
|
|
153
|
-
await objLifecycleHook[preDestroyMethod](ctx, this);
|
|
154
|
-
}
|
|
155
|
-
const destroyMethod = (_b = EggObject_1.EggObjectLifecycleUtil.getLifecycleHook('destroy', this.proto)) !== null && _b !== void 0 ? _b : 'destroy';
|
|
156
|
-
if (objLifecycleHook[destroyMethod]) {
|
|
157
|
-
await objLifecycleHook[destroyMethod](ctx, this);
|
|
158
|
-
}
|
|
159
|
-
this.status = tegg_types_1.EggObjectStatus.DESTROYED;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
injectProperty(name, descriptor) {
|
|
163
|
-
Reflect.defineProperty(this._obj, name, descriptor);
|
|
164
|
-
}
|
|
165
|
-
get obj() {
|
|
166
|
-
return this._obj;
|
|
167
|
-
}
|
|
168
|
-
get isReady() {
|
|
169
|
-
return this.status === tegg_types_1.EggObjectStatus.READY;
|
|
170
|
-
}
|
|
171
|
-
static async createObject(name, proto, lifecycleContext) {
|
|
172
|
-
const obj = new EggObjectImpl(name, proto);
|
|
173
|
-
await obj.init(lifecycleContext);
|
|
174
|
-
return obj;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
exports.default = EggObjectImpl;
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0SW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbXBsL0VnZ09iamVjdEltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3REFBdUQ7QUFRdkQsa0RBQWdGO0FBQ2hGLDBEQUFzRDtBQUN0RCxrREFBNEQ7QUFDNUQsd0VBQXFFO0FBQ3JFLG1EQUFnRDtBQUNoRCw0REFBeUQ7QUFFekQsTUFBcUIsYUFBYTtJQVFoQyxZQUFZLElBQW1CLEVBQUUsS0FBbUI7UUFONUMsV0FBTSxHQUFvQiw0QkFBZSxDQUFDLE9BQU8sQ0FBQztRQU94RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixNQUFNLEdBQUcsR0FBRywrQkFBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxFQUFFLEdBQUcsOEJBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsR0FBOEI7O1FBQ3pELGdCQUFnQjtRQUNoQixrQ0FBa0M7UUFDbEMsaUJBQWlCO1FBQ2pCLG1DQUFtQztRQUNuQyxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBMEIsQ0FBQztZQUV6RCxjQUFjO1lBQ2QsTUFBTSxrQ0FBc0IsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hELFlBQVk7WUFDWixNQUFNLG1CQUFtQixHQUFHLE1BQUEsa0NBQXNCLENBQUMsZ0JBQWdC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
|