@eggjs/tegg-runtime 1.4.3 → 3.0.0
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/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/src/factory/EggContainerFactory.d.ts +9 -5
- package/dist/src/factory/EggContainerFactory.js +22 -9
- package/dist/src/factory/EggObjectFactory.d.ts +2 -3
- package/dist/src/factory/EggObjectFactory.js +3 -3
- package/dist/src/factory/LoadUnitInstanceFactory.js +1 -1
- package/dist/src/impl/ContextInitiator.d.ts +9 -0
- package/dist/src/impl/ContextInitiator.js +39 -0
- package/dist/src/impl/ContextObjectGraph.d.ts +6 -0
- package/dist/src/impl/ContextObjectGraph.js +44 -0
- package/dist/src/impl/EggAlwaysNewObjectContainer.d.ts +1 -2
- package/dist/src/impl/EggAlwaysNewObjectContainer.js +3 -3
- package/dist/src/impl/EggObjectImpl.d.ts +2 -4
- package/dist/src/impl/EggObjectImpl.js +15 -9
- package/dist/src/impl/EggObjectUtil.d.ts +2 -0
- package/dist/src/impl/EggObjectUtil.js +12 -1
- package/dist/src/model/AbstractEggContext.d.ts +1 -1
- package/dist/src/model/AbstractEggContext.js +7 -5
- package/dist/src/model/ContextHandler.d.ts +9 -0
- package/dist/src/model/ContextHandler.js +19 -0
- package/dist/src/model/EggContainer.d.ts +2 -3
- package/dist/src/model/LoadUnitInstance.js +1 -1
- package/package.json +6 -5
- package/CHANGELOG.md +0 -19
package/dist/index.d.ts
CHANGED
|
@@ -7,5 +7,6 @@ export * from './src/factory/EggContainerFactory';
|
|
|
7
7
|
export * from './src/factory/EggObjectFactory';
|
|
8
8
|
export * from './src/factory/LoadUnitInstanceFactory';
|
|
9
9
|
export * from './src/impl/ModuleLoadUnitInstance';
|
|
10
|
+
export * from './src/model/ContextHandler';
|
|
10
11
|
import './src/impl/EggAlwaysNewObjectContainer';
|
|
11
12
|
import './src/impl/ModuleLoadUnitInstance';
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,7 @@ __exportStar(require("./src/factory/EggContainerFactory"), exports);
|
|
|
23
23
|
__exportStar(require("./src/factory/EggObjectFactory"), exports);
|
|
24
24
|
__exportStar(require("./src/factory/LoadUnitInstanceFactory"), exports);
|
|
25
25
|
__exportStar(require("./src/impl/ModuleLoadUnitInstance"), exports);
|
|
26
|
+
__exportStar(require("./src/model/ContextHandler"), exports);
|
|
26
27
|
require("./src/impl/EggAlwaysNewObjectContainer");
|
|
27
28
|
require("./src/impl/ModuleLoadUnitInstance");
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXlDO0FBQ3pDLHlEQUF1QztBQUN2QyxpRUFBK0M7QUFDL0MsK0RBQTZDO0FBQzdDLHdEQUFzQztBQUV0QyxvRUFBa0Q7QUFDbEQsaUVBQStDO0FBQy9DLHdFQUFzRDtBQUN0RCxvRUFBa0Q7QUFDbEQsNkRBQTJDO0FBRTNDLGtEQUFnRDtBQUNoRCw2Q0FBMkMifQ==
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
2
|
-
import { EggContext } from '../model/EggContext';
|
|
3
2
|
import { EggContainer } from '../model/EggContainer';
|
|
4
3
|
import { LifecycleContext } from '@eggjs/tegg-lifecycle';
|
|
5
4
|
import { EggObjectName, ObjectInitTypeLike } from '@eggjs/core-decorator';
|
|
6
5
|
import { EggObject } from '../model/EggObject';
|
|
7
|
-
export type ContainerGetMethod = (proto: EggPrototype
|
|
6
|
+
export type ContainerGetMethod = (proto: EggPrototype) => EggContainer<LifecycleContext>;
|
|
8
7
|
export declare class EggContainerFactory {
|
|
9
8
|
private static containerGetMethodMap;
|
|
10
9
|
static registerContainerGetMethod(initType: ObjectInitTypeLike, method: ContainerGetMethod): void;
|
|
11
|
-
static getContainer(proto: EggPrototype
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
static getContainer(proto: EggPrototype): EggContainer<LifecycleContext>;
|
|
11
|
+
/**
|
|
12
|
+
* get or create egg object
|
|
13
|
+
* If get singleton egg object in context,
|
|
14
|
+
* will create context egg object for it.
|
|
15
|
+
*/
|
|
16
|
+
static getOrCreateEggObject(proto: EggPrototype, name?: EggObjectName): Promise<EggObject>;
|
|
17
|
+
static getEggObject(proto: EggPrototype, name?: EggObjectName): EggObject;
|
|
14
18
|
}
|
|
@@ -1,28 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EggContainerFactory = void 0;
|
|
4
|
+
const ContextHandler_1 = require("../model/ContextHandler");
|
|
5
|
+
const ContextInitiator_1 = require("../impl/ContextInitiator");
|
|
4
6
|
class EggContainerFactory {
|
|
5
7
|
static registerContainerGetMethod(initType, method) {
|
|
6
8
|
this.containerGetMethodMap.set(initType, method);
|
|
7
9
|
}
|
|
8
|
-
static getContainer(proto
|
|
10
|
+
static getContainer(proto) {
|
|
9
11
|
const method = this.containerGetMethodMap.get(proto.initType);
|
|
10
12
|
if (!method) {
|
|
11
13
|
throw new Error(`InitType ${proto.initType} has not register ContainerGetMethod`);
|
|
12
14
|
}
|
|
13
|
-
return method(proto
|
|
15
|
+
return method(proto);
|
|
14
16
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
/**
|
|
18
|
+
* get or create egg object
|
|
19
|
+
* If get singleton egg object in context,
|
|
20
|
+
* will create context egg object for it.
|
|
21
|
+
*/
|
|
22
|
+
static async getOrCreateEggObject(proto, name) {
|
|
23
|
+
const container = this.getContainer(proto);
|
|
17
24
|
name = name || proto.name;
|
|
18
|
-
|
|
25
|
+
const obj = await container.getOrCreateEggObject(name, proto);
|
|
26
|
+
const ctx = ContextHandler_1.ContextHandler.getContext();
|
|
27
|
+
if (ctx) {
|
|
28
|
+
const initiator = ContextInitiator_1.ContextInitiator.createContextInitiator(ctx);
|
|
29
|
+
await initiator.init(obj);
|
|
30
|
+
}
|
|
31
|
+
return obj;
|
|
19
32
|
}
|
|
20
|
-
static getEggObject(proto, name
|
|
21
|
-
const container = this.getContainer(proto
|
|
33
|
+
static getEggObject(proto, name) {
|
|
34
|
+
const container = this.getContainer(proto);
|
|
22
35
|
name = name || proto.name;
|
|
23
|
-
return container.getEggObject(name, proto
|
|
36
|
+
return container.getEggObject(name, proto);
|
|
24
37
|
}
|
|
25
38
|
}
|
|
26
39
|
exports.EggContainerFactory = EggContainerFactory;
|
|
27
40
|
EggContainerFactory.containerGetMethodMap = new Map();
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udGFpbmVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mYWN0b3J5L0VnZ0NvbnRhaW5lckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsNERBQXlEO0FBQ3pELCtEQUE0RDtBQUs1RCxNQUFhLG1CQUFtQjtJQUc5QixNQUFNLENBQUMsMEJBQTBCLENBQUMsUUFBNEIsRUFBRSxNQUEwQjtRQUN4RixJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFtQjtRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssQ0FBQyxRQUFRLHNDQUFzQyxDQUFDLENBQUM7U0FDbkY7UUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsS0FBbUIsRUFBRSxJQUFvQjtRQUN6RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQixNQUFNLEdBQUcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUQsTUFBTSxHQUFHLEdBQUcsK0JBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLEdBQUcsRUFBRTtZQUNQLE1BQU0sU0FBUyxHQUFHLG1DQUFnQixDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzQjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBbUIsRUFBRSxJQUFvQjtRQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQixPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7O0FBcENILGtEQXFDQztBQXBDZ0IseUNBQXFCLEdBQWdELElBQUksR0FBRyxFQUFFLENBQUMifQ==
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { EggObject, EggObjectLifeCycleContext } from '../model/EggObject';
|
|
2
2
|
import { EggObjectName } from '@eggjs/core-decorator';
|
|
3
3
|
import { EggPrototype, EggPrototypeClass } from '@eggjs/tegg-metadata';
|
|
4
|
-
import { EggContext } from '../model/EggContext';
|
|
5
4
|
interface EggObjectPair {
|
|
6
5
|
obj: EggObject;
|
|
7
6
|
ctx: EggObjectLifeCycleContext;
|
|
8
7
|
}
|
|
9
|
-
export type CreateObjectMethod = (name: EggObjectName, proto: EggPrototype, lifecycleContext: EggObjectLifeCycleContext
|
|
8
|
+
export type CreateObjectMethod = (name: EggObjectName, proto: EggPrototype, lifecycleContext: EggObjectLifeCycleContext) => Promise<EggObject>;
|
|
10
9
|
export declare class EggObjectFactory {
|
|
11
10
|
static eggObjectMap: Map<string, EggObjectPair>;
|
|
12
11
|
static eggObjectCreateMap: Map<EggPrototypeClass, CreateObjectMethod>;
|
|
13
12
|
static registerEggObjectCreateMethod(protoClass: EggPrototypeClass, method: CreateObjectMethod): void;
|
|
14
13
|
static getEggObjectCreateMethod(protoClass: EggPrototypeClass): CreateObjectMethod;
|
|
15
|
-
static createObject(name: EggObjectName, proto: EggPrototype
|
|
14
|
+
static createObject(name: EggObjectName, proto: EggPrototype): Promise<EggObject>;
|
|
16
15
|
static destroyObject(obj: EggObject): Promise<void>;
|
|
17
16
|
}
|
|
18
17
|
export {};
|
|
@@ -17,7 +17,7 @@ class EggObjectFactory {
|
|
|
17
17
|
}
|
|
18
18
|
return EggObjectImpl_1.default.createObject;
|
|
19
19
|
}
|
|
20
|
-
static async createObject(name, proto
|
|
20
|
+
static async createObject(name, proto) {
|
|
21
21
|
const loadUnit = tegg_metadata_1.LoadUnitFactory.getLoadUnitById(proto.loadUnitId);
|
|
22
22
|
if (!loadUnit) {
|
|
23
23
|
throw new Error(`not found load unit ${proto.loadUnitId}`);
|
|
@@ -28,7 +28,7 @@ class EggObjectFactory {
|
|
|
28
28
|
loadUnitInstance: loadUnitInstance,
|
|
29
29
|
};
|
|
30
30
|
const method = this.getEggObjectCreateMethod(proto.constructor);
|
|
31
|
-
const args = [name, proto, lifecycleContext
|
|
31
|
+
const args = [name, proto, lifecycleContext];
|
|
32
32
|
const obj = await Reflect.apply(method, null, args);
|
|
33
33
|
this.eggObjectMap.set(obj.id, { obj, ctx: lifecycleContext });
|
|
34
34
|
return obj;
|
|
@@ -48,4 +48,4 @@ class EggObjectFactory {
|
|
|
48
48
|
exports.EggObjectFactory = EggObjectFactory;
|
|
49
49
|
EggObjectFactory.eggObjectMap = new Map();
|
|
50
50
|
EggObjectFactory.eggObjectCreateMap = new Map();
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mYWN0b3J5L0VnZ09iamVjdEZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsd0RBQXdGO0FBQ3hGLDBFQUFrRDtBQUNsRCx1RUFBb0U7QUFTcEUsTUFBYSxnQkFBZ0I7SUFJcEIsTUFBTSxDQUFDLDZCQUE2QixDQUFDLFVBQTZCLEVBQUUsTUFBMEI7UUFDbkcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUE2QjtRQUNsRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDM0MsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDO1NBQ2pEO1FBQ0QsT0FBTyx1QkFBYSxDQUFDLFlBQVksQ0FBQztJQUNwQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBbUIsRUFBRSxLQUFtQjtRQUNoRSxNQUFNLFFBQVEsR0FBRywrQkFBZSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQzVEO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxpREFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvRSxNQUFNLGdCQUFnQixHQUE4QjtZQUNsRCxRQUFRO1lBQ1IsZ0JBQWdCLEVBQUUsZ0JBQWlCO1NBQ3BDLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLFdBQWdDLENBQUMsQ0FBQztRQUNyRixNQUFNLElBQUksR0FBRyxDQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUUsQ0FBQztRQUMvQyxNQUFNLEdBQUcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBYztRQUN2QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBQy9DLElBQUk7WUFDRixJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2YsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hCO1NBQ0Y7Z0JBQVM7WUFDUixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDOztBQXpDSCw0Q0EwQ0M7QUF6Q1EsNkJBQVksR0FBK0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNyRCxtQ0FBa0IsR0FBK0MsSUFBSSxHQUFHLEVBQUUsQ0FBQyJ9
|
|
@@ -56,4 +56,4 @@ LoadUnitInstanceFactory.instanceMap = new Map();
|
|
|
56
56
|
EggContainerFactory_1.EggContainerFactory.registerContainerGetMethod(core_decorator_1.ObjectInitType.SINGLETON, (proto) => {
|
|
57
57
|
return LoadUnitInstanceFactory.getLoadUnitInstanceByProto(proto);
|
|
58
58
|
});
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZFVuaXRJbnN0YW5jZUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmFjdG9yeS9Mb2FkVW5pdEluc3RhbmNlRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwwREFBc0Q7QUFDdEQsK0RBQTREO0FBQzVELDBEQUF1RDtBQVF2RCxNQUFhLHVCQUF1QjtJQUlsQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsSUFBeUIsRUFBRSxPQUFnQztRQUM5RixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsUUFBa0I7UUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixRQUFRLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDO1NBQzlFO1FBQ0QsTUFBTSxVQUFVLEdBQUcsOEJBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sR0FBRyxHQUFxQztnQkFDNUMsUUFBUTthQUNULENBQUM7WUFDRixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUNqQiw0Q0FBNEM7Z0JBQzVDLG9EQUFvRDtnQkFDcEQsOENBQThDO2dCQUM5QyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDMUI7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFFLENBQUMsUUFBUSxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBa0I7O1FBQzNDLE1BQU0sVUFBVSxHQUFHLDhCQUFhLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sTUFBQSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsMENBQUUsUUFBUSxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLGdCQUFrQztRQUNyRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFFLENBQUM7UUFDM0QsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7WUFDNUIsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEtBQW1CO1FBQ25ELEtBQUssTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM3QyxPQUFPLFFBQVEsQ0FBQzthQUNqQjtTQUNGO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7QUFsREgsMERBbURDO0FBbERnQixrQ0FBVSxHQUFzRCxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzFFLG1DQUFXLEdBQXNDLElBQUksR0FBRyxFQUFFLENBQUM7QUFtRDVFLHlDQUFtQixDQUFDLDBCQUEwQixDQUFDLCtCQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBbUIsRUFBRSxFQUFFO0lBQy9GLE9BQU8sdUJBQXVCLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkUsQ0FBQyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EggContext } from '../model/EggContext';
|
|
2
|
+
import { EggObject } from '../model/EggObject';
|
|
3
|
+
export declare class ContextInitiator {
|
|
4
|
+
private readonly eggContext;
|
|
5
|
+
private readonly eggObjectInitRecorder;
|
|
6
|
+
constructor(eggContext: EggContext);
|
|
7
|
+
init(obj: EggObject): Promise<void>;
|
|
8
|
+
static createContextInitiator(context: EggContext): ContextInitiator;
|
|
9
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
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.eggContext.set(CONTEXT_INITIATOR, this);
|
|
13
|
+
}
|
|
14
|
+
async init(obj) {
|
|
15
|
+
if (this.eggObjectInitRecorder.get(obj) === true) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
this.eggObjectInitRecorder.set(obj, true);
|
|
19
|
+
const injectObjectProtos = ContextObjectGraph_1.ContextObjectGraph.getContextProto(obj.proto);
|
|
20
|
+
await Promise.all(injectObjectProtos.map(async (injectObject) => {
|
|
21
|
+
const proto = injectObject.proto;
|
|
22
|
+
const loadUnit = tegg_metadata_1.LoadUnitFactory.getLoadUnitById(proto.loadUnitId);
|
|
23
|
+
if (!loadUnit) {
|
|
24
|
+
throw new Error(`can not find load unit: ${proto.loadUnitId}`);
|
|
25
|
+
}
|
|
26
|
+
await EggContainerFactory_1.EggContainerFactory.getOrCreateEggObject(proto, injectObject.objName);
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
static createContextInitiator(context) {
|
|
30
|
+
let initiator = context.get(CONTEXT_INITIATOR);
|
|
31
|
+
if (!initiator) {
|
|
32
|
+
initiator = new ContextInitiator(context);
|
|
33
|
+
context.set(CONTEXT_INITIATOR, initiator);
|
|
34
|
+
}
|
|
35
|
+
return initiator;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ContextInitiator = ContextInitiator;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dEluaXRpYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbXBsL0NvbnRleHRJbml0aWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0RBQXVEO0FBR3ZELDZEQUEwRDtBQUMxRCx3RUFBcUU7QUFFckUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUVoRSxNQUFhLGdCQUFnQjtJQUkzQixZQUFZLFVBQXNCO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQWM7UUFDdkIsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNoRCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQyxNQUFNLGtCQUFrQixHQUFHLHVDQUFrQixDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekUsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsWUFBWSxFQUFDLEVBQUU7WUFDNUQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUNqQyxNQUFNLFFBQVEsR0FBRywrQkFBZSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDYixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQzthQUNoRTtZQUNELE1BQU0seUNBQW1CLENBQUMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxPQUFtQjtRQUMvQyxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLFNBQVMsR0FBRyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDM0M7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUFsQ0QsNENBa0NDIn0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContextObjectGraph = void 0;
|
|
4
|
+
const tegg_1 = require("@eggjs/tegg");
|
|
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_1.ObjectInitType.CONTEXT && proto.initType !== tegg_1.ObjectInitType.CONTEXT) {
|
|
36
|
+
holder.addInjectProto(injectObject);
|
|
37
|
+
ContextObjectGraph.doGetContextProto(injectObject.proto, holder);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.ContextObjectGraph = ContextObjectGraph;
|
|
43
|
+
ContextObjectGraph.eggObjectInitRecorder = new WeakMap();
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dE9iamVjdEdyYXBoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltcGwvQ29udGV4dE9iamVjdEdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNDQUE2QztBQUU3QyxNQUFNLGlCQUFpQjtJQUF2QjtRQUNVLFVBQUssR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMvQixpQkFBWSxHQUE2QixFQUFFLENBQUM7SUFjdEQsQ0FBQztJQVpDLGNBQWMsQ0FBQyxpQkFBb0M7UUFDakQsTUFBTSxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hGLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFFRCxNQUFhLGtCQUFrQjtJQUc3QixNQUFNLENBQUMsZUFBZSxDQUFDLEtBQW1CO1FBQ3hDLElBQUksa0JBQWtCLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZELE9BQU8sa0JBQWtCLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBRSxDQUFDO1NBQzdEO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEMsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0Msa0JBQWtCLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFtQixFQUFFLE1BQXlCO1FBQzdFLEtBQUssTUFBTSxZQUFZLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUM5QyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLHFCQUFjLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUsscUJBQWMsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3ZHLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3BDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDbEU7U0FDRjtJQUNILENBQUM7O0FBckJILGdEQXNCQztBQXJCZ0Isd0NBQXFCLEdBQW9ELElBQUksT0FBTyxFQUFFLENBQUMifQ==
|
|
@@ -3,7 +3,6 @@ import { Id, LifecycleContext } from '@eggjs/tegg-lifecycle';
|
|
|
3
3
|
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
4
4
|
import { EggObjectName } from '@eggjs/core-decorator';
|
|
5
5
|
import { EggObject } from '../model/EggObject';
|
|
6
|
-
import { EggContext } from '../model/EggContext';
|
|
7
6
|
export declare class EggAlwaysNewObjectContainer implements EggContainer<LifecycleContext> {
|
|
8
7
|
static instance: EggAlwaysNewObjectContainer;
|
|
9
8
|
readonly id: Id;
|
|
@@ -12,7 +11,7 @@ export declare class EggAlwaysNewObjectContainer implements EggContainer<Lifecyc
|
|
|
12
11
|
deleteProtoToCreate(): void;
|
|
13
12
|
iterateProtoToCreate(): IterableIterator<[EggObjectName, EggPrototype]>;
|
|
14
13
|
getEggObject(): EggObject;
|
|
15
|
-
getOrCreateEggObject(name: string, proto: EggPrototype
|
|
14
|
+
getOrCreateEggObject(name: string, proto: EggPrototype): Promise<EggObject>;
|
|
16
15
|
destroy(): Promise<void>;
|
|
17
16
|
init(): Promise<void>;
|
|
18
17
|
}
|
|
@@ -20,8 +20,8 @@ class EggAlwaysNewObjectContainer {
|
|
|
20
20
|
getEggObject() {
|
|
21
21
|
throw new Error('Always Object can not use getEggObject, should use getOrCreateEggObject');
|
|
22
22
|
}
|
|
23
|
-
async getOrCreateEggObject(name, proto
|
|
24
|
-
return EggObjectFactory_1.EggObjectFactory.createObject(name, proto
|
|
23
|
+
async getOrCreateEggObject(name, proto) {
|
|
24
|
+
return EggObjectFactory_1.EggObjectFactory.createObject(name, proto);
|
|
25
25
|
}
|
|
26
26
|
async destroy() {
|
|
27
27
|
// do nothing
|
|
@@ -33,4 +33,4 @@ class EggAlwaysNewObjectContainer {
|
|
|
33
33
|
exports.EggAlwaysNewObjectContainer = EggAlwaysNewObjectContainer;
|
|
34
34
|
EggAlwaysNewObjectContainer.instance = new EggAlwaysNewObjectContainer();
|
|
35
35
|
EggContainerFactory_1.EggContainerFactory.registerContainerGetMethod(core_decorator_1.ObjectInitType.ALWAYS_NEW, () => EggAlwaysNewObjectContainer.instance);
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQWx3YXlzTmV3T2JqZWN0Q29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltcGwvRWdnQWx3YXlzTmV3T2JqZWN0Q29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDBEQUFzRTtBQUV0RSxrRUFBK0Q7QUFDL0Qsd0VBQXFFO0FBRXJFLE1BQWEsMkJBQTJCO0lBSXRDO1FBQ0UsSUFBSSxDQUFDLEVBQUUsR0FBRyw2QkFBNkIsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTztJQUNULENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTztJQUNULENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBWSxFQUFFLEtBQW1CO1FBQzFELE9BQU8sbUNBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxhQUFhO0lBQ2YsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsYUFBYTtJQUNmLENBQUM7O0FBbENILGtFQW1DQztBQWxDUSxvQ0FBUSxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQztBQW9DdEQseUNBQW1CLENBQUMsMEJBQTBCLENBQUMsK0JBQWMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUMifQ==
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import { EggObject, EggObjectLifeCycleContext } from '../model/EggObject';
|
|
2
2
|
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
3
|
-
import { EggContext } from '../model/EggContext';
|
|
4
3
|
import { EggObjectName } from '@eggjs/core-decorator';
|
|
5
4
|
export default class EggObjectImpl implements EggObject {
|
|
6
5
|
private _obj;
|
|
7
6
|
private status;
|
|
8
7
|
readonly proto: EggPrototype;
|
|
9
|
-
readonly ctx?: EggContext;
|
|
10
8
|
readonly name: EggObjectName;
|
|
11
9
|
readonly id: string;
|
|
12
|
-
constructor(name: EggObjectName, proto: EggPrototype
|
|
10
|
+
constructor(name: EggObjectName, proto: EggPrototype);
|
|
13
11
|
init(ctx: EggObjectLifeCycleContext): Promise<void>;
|
|
14
12
|
destroy(ctx: EggObjectLifeCycleContext): Promise<void>;
|
|
15
13
|
injectProperty(name: EggObjectName, descriptor: PropertyDescriptor): void;
|
|
16
14
|
get obj(): object;
|
|
17
15
|
get isReady(): boolean;
|
|
18
|
-
static createObject(name: EggObjectName, proto: EggPrototype, lifecycleContext: EggObjectLifeCycleContext
|
|
16
|
+
static createObject(name: EggObjectName, proto: EggPrototype, lifecycleContext: EggObjectLifeCycleContext): Promise<EggObjectImpl>;
|
|
19
17
|
}
|
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const EggObject_1 = require("../model/EggObject");
|
|
4
4
|
const tegg_metadata_1 = require("@eggjs/tegg-metadata");
|
|
5
|
+
const core_decorator_1 = require("@eggjs/core-decorator");
|
|
5
6
|
const tegg_lifecycle_1 = require("@eggjs/tegg-lifecycle");
|
|
6
7
|
const EggContainerFactory_1 = require("../factory/EggContainerFactory");
|
|
7
8
|
const EggObjectUtil_1 = require("./EggObjectUtil");
|
|
9
|
+
const ContextHandler_1 = require("../model/ContextHandler");
|
|
8
10
|
class EggObjectImpl {
|
|
9
|
-
constructor(name, proto
|
|
10
|
-
var _a;
|
|
11
|
+
constructor(name, proto) {
|
|
11
12
|
this.status = EggObject_1.EggObjectStatus.PENDING;
|
|
12
13
|
this.name = name;
|
|
13
14
|
this.proto = proto;
|
|
14
|
-
|
|
15
|
-
this.id = tegg_lifecycle_1.IdenticalUtil.createObjectId(this.proto.id,
|
|
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);
|
|
16
17
|
}
|
|
17
18
|
async init(ctx) {
|
|
18
19
|
// 1. create obj
|
|
@@ -38,8 +39,13 @@ class EggObjectImpl {
|
|
|
38
39
|
if (!loadUnit) {
|
|
39
40
|
throw new Error(`can not find load unit: ${proto.loadUnitId}`);
|
|
40
41
|
}
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
if (this.proto.initType !== core_decorator_1.ObjectInitType.CONTEXT && injectObject.proto.initType === core_decorator_1.ObjectInitType.CONTEXT) {
|
|
43
|
+
this.injectProperty(injectObject.refName, EggObjectUtil_1.EggObjectUtil.contextEggObjectGetProperty(proto, injectObject.objName));
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
const injectObj = await EggContainerFactory_1.EggContainerFactory.getOrCreateEggObject(proto, injectObject.objName);
|
|
47
|
+
this.injectProperty(injectObject.refName, EggObjectUtil_1.EggObjectUtil.eggObjectGetProperty(injectObj));
|
|
48
|
+
}
|
|
43
49
|
}));
|
|
44
50
|
// global hook
|
|
45
51
|
await EggObject_1.EggObjectLifecycleUtil.objectPostCreate(ctx, this);
|
|
@@ -82,11 +88,11 @@ class EggObjectImpl {
|
|
|
82
88
|
get isReady() {
|
|
83
89
|
return this.status === EggObject_1.EggObjectStatus.READY;
|
|
84
90
|
}
|
|
85
|
-
static async createObject(name, proto, lifecycleContext
|
|
86
|
-
const obj = new EggObjectImpl(name, proto
|
|
91
|
+
static async createObject(name, proto, lifecycleContext) {
|
|
92
|
+
const obj = new EggObjectImpl(name, proto);
|
|
87
93
|
await obj.init(lifecycleContext);
|
|
88
94
|
return obj;
|
|
89
95
|
}
|
|
90
96
|
}
|
|
91
97
|
exports.default = EggObjectImpl;
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0SW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbXBsL0VnZ09iamVjdEltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrREFBbUg7QUFDbkgsd0RBQXFFO0FBQ3JFLDBEQUFzRTtBQUN0RSwwREFBMEU7QUFDMUUsd0VBQXFFO0FBQ3JFLG1EQUFnRDtBQUNoRCw0REFBeUQ7QUFFekQsTUFBcUIsYUFBYTtJQVFoQyxZQUFZLElBQW1CLEVBQUUsS0FBbUI7UUFONUMsV0FBTSxHQUFvQiwyQkFBZSxDQUFDLE9BQU8sQ0FBQztRQU94RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixNQUFNLEdBQUcsR0FBRywrQkFBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxFQUFFLEdBQUcsOEJBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQThCO1FBQ3ZDLGdCQUFnQjtRQUNoQixrQ0FBa0M7UUFDbEMsaUJBQWlCO1FBQ2pCLG1DQUFtQztRQUNuQyxvQkFBb0I7UUFDcEIsSUFBSTtZQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQTBCLENBQUM7WUFFekQsY0FBYztZQUNkLE1BQU0sa0NBQXNCLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RCxZQUFZO1lBQ1osSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUU7Z0JBQ2xDLE1BQU0sZ0JBQWdCLENB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
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { EggObject } from '../model/EggObject';
|
|
2
|
+
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
2
3
|
export declare class EggObjectUtil {
|
|
3
4
|
static eggObjectGetProperty(eggObject: EggObject): PropertyDescriptor;
|
|
5
|
+
static contextEggObjectGetProperty(proto: EggPrototype, objName: PropertyKey): PropertyDescriptor;
|
|
4
6
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EggObjectUtil = void 0;
|
|
4
|
+
const EggContainerFactory_1 = require("../factory/EggContainerFactory");
|
|
4
5
|
class EggObjectUtil {
|
|
5
6
|
static eggObjectGetProperty(eggObject) {
|
|
6
7
|
return {
|
|
@@ -11,6 +12,16 @@ class EggObjectUtil {
|
|
|
11
12
|
enumerable: true,
|
|
12
13
|
};
|
|
13
14
|
}
|
|
15
|
+
static contextEggObjectGetProperty(proto, objName) {
|
|
16
|
+
return {
|
|
17
|
+
get() {
|
|
18
|
+
const eggObject = EggContainerFactory_1.EggContainerFactory.getEggObject(proto, objName);
|
|
19
|
+
return eggObject.obj;
|
|
20
|
+
},
|
|
21
|
+
configurable: false,
|
|
22
|
+
enumerable: true,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
14
25
|
}
|
|
15
26
|
exports.EggObjectUtil = EggObjectUtil;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0VXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbXBsL0VnZ09iamVjdFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esd0VBQXFFO0FBR3JFLE1BQWEsYUFBYTtJQUN4QixNQUFNLENBQUMsb0JBQW9CLENBQUMsU0FBb0I7UUFDOUMsT0FBTztZQUNMLEdBQUc7Z0JBQ0QsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxZQUFZLEVBQUUsS0FBSztZQUNuQixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxLQUFtQixFQUFFLE9BQW9CO1FBQzFFLE9BQU87WUFDTCxHQUFHO2dCQUNELE1BQU0sU0FBUyxHQUFHLHlDQUFtQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ25FLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUN2QixDQUFDO1lBQ0QsWUFBWSxFQUFFLEtBQUs7WUFDbkIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJCRCxzQ0FxQkMifQ==
|
|
@@ -13,7 +13,7 @@ export declare abstract class AbstractEggContext implements EggContext {
|
|
|
13
13
|
destroy(ctx: EggContextLifecycleContext): Promise<void>;
|
|
14
14
|
get(key: string | symbol): any | undefined;
|
|
15
15
|
getEggObject(name: EggPrototypeName, proto: EggPrototype): EggObject;
|
|
16
|
-
getOrCreateEggObject(name: EggPrototypeName, proto: EggPrototype
|
|
16
|
+
getOrCreateEggObject(name: EggPrototypeName, proto: EggPrototype): Promise<EggObject>;
|
|
17
17
|
init(ctx: EggContextLifecycleContext): Promise<void>;
|
|
18
18
|
iterateProtoToCreate(): IterableIterator<[EggObjectName, EggPrototype]>;
|
|
19
19
|
set(key: string | symbol, val: any): void;
|
|
@@ -6,6 +6,7 @@ const core_decorator_1 = require("@eggjs/core-decorator");
|
|
|
6
6
|
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
7
7
|
const EggContainerFactory_1 = require("../factory/EggContainerFactory");
|
|
8
8
|
const EggObjectFactory_1 = require("../factory/EggObjectFactory");
|
|
9
|
+
const ContextHandler_1 = require("./ContextHandler");
|
|
9
10
|
class AbstractEggContext {
|
|
10
11
|
constructor() {
|
|
11
12
|
this.contextData = new Map();
|
|
@@ -43,12 +44,12 @@ class AbstractEggContext {
|
|
|
43
44
|
}
|
|
44
45
|
return protoObjMap.get(name);
|
|
45
46
|
}
|
|
46
|
-
async getOrCreateEggObject(name, proto
|
|
47
|
+
async getOrCreateEggObject(name, proto) {
|
|
47
48
|
const protoObjMap = tegg_common_util_1.MapUtil.getOrStore(this.eggObjectMap, proto.id, new Map());
|
|
48
49
|
if (!protoObjMap.has(name)) {
|
|
49
50
|
const protoObjPromiseMap = tegg_common_util_1.MapUtil.getOrStore(this.eggObjectPromiseMap, proto.id, new Map());
|
|
50
51
|
if (!protoObjPromiseMap.has(name)) {
|
|
51
|
-
const objPromise = EggObjectFactory_1.EggObjectFactory.createObject(name, proto
|
|
52
|
+
const objPromise = EggObjectFactory_1.EggObjectFactory.createObject(name, proto);
|
|
52
53
|
protoObjPromiseMap.set(name, objPromise);
|
|
53
54
|
const obj = await objPromise;
|
|
54
55
|
protoObjPromiseMap.delete(name);
|
|
@@ -66,7 +67,7 @@ class AbstractEggContext {
|
|
|
66
67
|
async init(ctx) {
|
|
67
68
|
await EggContext_1.EggContextLifecycleUtil.objectPreCreate(ctx, this);
|
|
68
69
|
for (const [name, proto] of this.protoToCreate) {
|
|
69
|
-
await this.getOrCreateEggObject(name, proto
|
|
70
|
+
await this.getOrCreateEggObject(name, proto);
|
|
70
71
|
}
|
|
71
72
|
await EggContext_1.EggContextLifecycleUtil.objectPostCreate(ctx, this);
|
|
72
73
|
}
|
|
@@ -78,10 +79,11 @@ class AbstractEggContext {
|
|
|
78
79
|
}
|
|
79
80
|
}
|
|
80
81
|
exports.AbstractEggContext = AbstractEggContext;
|
|
81
|
-
EggContainerFactory_1.EggContainerFactory.registerContainerGetMethod(core_decorator_1.ObjectInitType.CONTEXT, (
|
|
82
|
+
EggContainerFactory_1.EggContainerFactory.registerContainerGetMethod(core_decorator_1.ObjectInitType.CONTEXT, () => {
|
|
83
|
+
const ctx = ContextHandler_1.ContextHandler.getContext();
|
|
82
84
|
if (!ctx) {
|
|
83
85
|
throw new Error('ctx is required');
|
|
84
86
|
}
|
|
85
87
|
return ctx;
|
|
86
88
|
});
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RFZ2dDb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL0Fic3RyYWN0RWdnQ29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBK0Y7QUFDL0YsMERBQXdGO0FBSXhGLDhEQUFrRDtBQUNsRCx3RUFBcUU7QUFDckUsa0VBQStEO0FBQy9ELHFEQUFrRDtBQUVsRCxNQUFzQixrQkFBa0I7SUFBeEM7UUFDVSxnQkFBVyxHQUE4QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ25ELGtCQUFhLEdBQXdDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDL0QsaUJBQVksR0FBOEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNwRSx3QkFBbUIsR0FBdUQsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQTJFOUYsQ0FBQztJQXZFQyxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsS0FBbUI7UUFDaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFJO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQStCO1FBQzNDLE1BQU0sb0NBQXVCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFELE1BQU0sSUFBSSxHQUFnQixFQUFFLENBQUM7UUFDN0IsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BELEtBQUssTUFBTSxRQUFRLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JCO1NBQ0Y7UUFDRCxJQUFJLENBQUMs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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EggContext } from './EggContext';
|
|
2
|
+
type runInContextCallback<R = any> = (context: EggContext, fn: () => Promise<R>) => Promise<R>;
|
|
3
|
+
export declare class ContextHandler {
|
|
4
|
+
static getContextCallback: () => EggContext | undefined;
|
|
5
|
+
static runInContextCallback: runInContextCallback;
|
|
6
|
+
static getContext(): EggContext | undefined;
|
|
7
|
+
static run<R = any>(context: EggContext, fn: () => Promise<R>): Promise<R>;
|
|
8
|
+
}
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
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.ContextHandler = void 0;
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
8
|
+
class ContextHandler {
|
|
9
|
+
static getContext() {
|
|
10
|
+
(0, assert_1.default)(this.getContextCallback, 'getContextCallback not set');
|
|
11
|
+
return this.getContextCallback();
|
|
12
|
+
}
|
|
13
|
+
static run(context, fn) {
|
|
14
|
+
(0, assert_1.default)(this.runInContextCallback, 'runInContextCallback not set');
|
|
15
|
+
return this.runInContextCallback(context, fn);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.ContextHandler = ContextHandler;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGV4dEhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvQ29udGV4dEhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBSzVCLE1BQWEsY0FBYztJQUl6QixNQUFNLENBQUMsVUFBVTtRQUNmLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztRQUM5RCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxDQUFVLE9BQW1CLEVBQUUsRUFBb0I7UUFDM0QsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSw4QkFBOEIsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFiRCx3Q0FhQyJ9
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { LifecycleContext, LifecycleObject } from '@eggjs/tegg-lifecycle';
|
|
2
2
|
import { EggObjectName, EggPrototypeName } from '@eggjs/core-decorator';
|
|
3
3
|
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
4
|
-
import { EggContext } from './EggContext';
|
|
5
4
|
import { EggObject } from './EggObject';
|
|
6
5
|
export interface EggContainer<T extends LifecycleContext> extends LifecycleObject<T> {
|
|
7
6
|
iterateProtoToCreate(): IterableIterator<[EggObjectName, EggPrototype]>;
|
|
8
7
|
addProtoToCreate(name: EggPrototypeName, proto: EggPrototype): any;
|
|
9
8
|
deleteProtoToCreate(name: EggPrototypeName): any;
|
|
10
|
-
getOrCreateEggObject(name: EggPrototypeName, proto: EggPrototype
|
|
11
|
-
getEggObject(name: EggPrototypeName, proto: EggPrototype
|
|
9
|
+
getOrCreateEggObject(name: EggPrototypeName, proto: EggPrototype): Promise<EggObject>;
|
|
10
|
+
getEggObject(name: EggPrototypeName, proto: EggPrototype): EggObject;
|
|
12
11
|
}
|
|
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.LoadUnitInstanceLifecycleUtil = void 0;
|
|
4
4
|
const tegg_lifecycle_1 = require("@eggjs/tegg-lifecycle");
|
|
5
5
|
exports.LoadUnitInstanceLifecycleUtil = new tegg_lifecycle_1.LifecycleUtil();
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZFVuaXRJbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9Mb2FkVW5pdEluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDBEQUFzRDtBQVd6QyxRQUFBLDZCQUE2QixHQUFHLElBQUksOEJBQWEsRUFBc0QsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/tegg-runtime",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "tegg runtime",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -36,16 +36,17 @@
|
|
|
36
36
|
"node": ">=14.0.0"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@eggjs/core-decorator": "^
|
|
39
|
+
"@eggjs/core-decorator": "^3.0.0",
|
|
40
40
|
"@eggjs/tegg-common-util": "^1.2.3",
|
|
41
41
|
"@eggjs/tegg-lifecycle": "^1.0.0",
|
|
42
|
-
"@eggjs/tegg-metadata": "^
|
|
42
|
+
"@eggjs/tegg-metadata": "^3.0.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@eggjs/tegg-loader": "^
|
|
45
|
+
"@eggjs/tegg-loader": "^3.0.0",
|
|
46
|
+
"mm": "^3.2.1"
|
|
46
47
|
},
|
|
47
48
|
"publishConfig": {
|
|
48
49
|
"access": "public"
|
|
49
50
|
},
|
|
50
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "942c516999e5380bd3f2b30de1dfd28569525da4"
|
|
51
52
|
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
-
|
|
6
|
-
# [1.3.0](https://github.com/eggjs/tegg/compare/v1.2.0...v1.3.0) (2022-07-01)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
### Features
|
|
10
|
-
|
|
11
|
-
* allow inject proto and name ([#40](https://github.com/eggjs/tegg/issues/40)) ([abd1766](https://github.com/eggjs/tegg/commit/abd17665af2528c4c2e33f4c6b0fceddd8a4e76b))
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
# [0.2.0](https://github.com/eggjs/tegg/compare/v0.1.19...v0.2.0) (2022-01-20)
|
|
18
|
-
|
|
19
|
-
**Note:** Version bump only for package @eggjs/tegg-runtime
|