@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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXlDO0FBQ3pDLHlEQUF1QztBQUN2QyxpRUFBK0M7QUFDL0MsK0RBQTZDO0FBQzdDLHdEQUFzQztBQUV0QyxvRUFBa0Q7QUFDbEQsaUVBQStDO0FBQy9DLHdFQUFzRDtBQUN0RCxvRUFBa0Q7QUFFbEQsa0RBQWdEO0FBQ2hELDZDQUEyQyJ9
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, ctx?: EggContext) => EggContainer<LifecycleContext>;
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, ctx?: EggContext): EggContainer<LifecycleContext>;
12
- static getOrCreateEggObject(proto: EggPrototype, name?: EggObjectName, ctx?: EggContext): Promise<EggObject>;
13
- static getEggObject(proto: EggPrototype, name?: EggObjectName, ctx?: EggContext): EggObject;
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, ctx) {
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, ctx);
15
+ return method(proto);
14
16
  }
15
- static async getOrCreateEggObject(proto, name, ctx) {
16
- const container = this.getContainer(proto, ctx);
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
- return container.getOrCreateEggObject(name, proto, ctx);
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, ctx) {
21
- const container = this.getContainer(proto, ctx);
33
+ static getEggObject(proto, name) {
34
+ const container = this.getContainer(proto);
22
35
  name = name || proto.name;
23
- return container.getEggObject(name, proto, ctx);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udGFpbmVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mYWN0b3J5L0VnZ0NvbnRhaW5lckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBVUEsTUFBYSxtQkFBbUI7SUFHOUIsTUFBTSxDQUFDLDBCQUEwQixDQUFDLFFBQTRCLEVBQUUsTUFBMEI7UUFDeEYsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBbUIsRUFBRSxHQUFnQjtRQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLEtBQUssQ0FBQyxRQUFRLHNDQUFzQyxDQUFDLENBQUM7U0FDbkY7UUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsS0FBbUIsRUFBRSxJQUFvQixFQUFFLEdBQWdCO1FBQzNGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELElBQUksR0FBRyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQztRQUMxQixPQUFPLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQW1CLEVBQUUsSUFBb0IsRUFBRSxHQUFnQjtRQUM3RSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoRCxJQUFJLEdBQUcsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDMUIsT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7QUF6Qkgsa0RBMEJDO0FBekJnQix5Q0FBcUIsR0FBZ0QsSUFBSSxHQUFHLEVBQUUsQ0FBQyJ9
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, ctx?: EggContext) => Promise<EggObject>;
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, ctx?: EggContext): Promise<EggObject>;
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, ctx) {
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, ctx];
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mYWN0b3J5L0VnZ09iamVjdEZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsd0RBQXdGO0FBRXhGLDBFQUFrRDtBQUNsRCx1RUFBb0U7QUFTcEUsTUFBYSxnQkFBZ0I7SUFJcEIsTUFBTSxDQUFDLDZCQUE2QixDQUFDLFVBQTZCLEVBQUUsTUFBMEI7UUFDbkcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUE2QjtRQUNsRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDM0MsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDO1NBQ2pEO1FBQ0QsT0FBTyx1QkFBYSxDQUFDLFlBQVksQ0FBQztJQUNwQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBbUIsRUFBRSxLQUFtQixFQUFFLEdBQWdCO1FBQ2xGLE1BQU0sUUFBUSxHQUFHLCtCQUFlLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDNUQ7UUFDRCxNQUFNLGdCQUFnQixHQUFHLGlEQUF1QixDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sZ0JBQWdCLEdBQThCO1lBQ2xELFFBQVE7WUFDUixnQkFBZ0IsRUFBRSxnQkFBaUI7U0FDcEMsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsV0FBZ0MsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sSUFBSSxHQUFHLENBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLENBQUUsQ0FBQztRQUNwRCxNQUFNLEdBQUcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBYztRQUN2QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBQy9DLElBQUk7WUFDRixJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2YsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hCO1NBQ0Y7Z0JBQVM7WUFDUixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDOztBQXpDSCw0Q0EwQ0M7QUF6Q1EsNkJBQVksR0FBK0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNyRCxtQ0FBa0IsR0FBK0MsSUFBSSxHQUFHLEVBQUUsQ0FBQyJ9
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZFVuaXRJbnN0YW5jZUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmFjdG9yeS9Mb2FkVW5pdEluc3RhbmNlRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwwREFBc0Q7QUFDdEQsK0RBQTREO0FBQzVELDBEQUF1RDtBQVN2RCxNQUFhLHVCQUF1QjtJQUlsQyxNQUFNLENBQUMsNkJBQTZCLENBQUMsSUFBeUIsRUFBRSxPQUFnQztRQUM5RixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsUUFBa0I7UUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixRQUFRLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDO1NBQzlFO1FBQ0QsTUFBTSxVQUFVLEdBQUcsOEJBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sR0FBRyxHQUFxQztnQkFDNUMsUUFBUTthQUNULENBQUM7WUFDRixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUNqQiw0Q0FBNEM7Z0JBQzVDLG9EQUFvRDtnQkFDcEQsOENBQThDO2dCQUM5QyxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDMUI7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFFLENBQUMsUUFBUSxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBa0I7O1FBQzNDLE1BQU0sVUFBVSxHQUFHLDhCQUFhLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sTUFBQSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsMENBQUUsUUFBUSxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLGdCQUFrQztRQUNyRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFFLENBQUM7UUFDM0QsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7WUFDNUIsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEtBQW1CO1FBQ25ELEtBQUssTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM3QyxPQUFPLFFBQVEsQ0FBQzthQUNqQjtTQUNGO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7QUFsREgsMERBbURDO0FBbERnQixrQ0FBVSxHQUFzRCxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzFFLG1DQUFXLEdBQXNDLElBQUksR0FBRyxFQUFFLENBQUM7QUFtRDVFLHlDQUFtQixDQUFDLDBCQUEwQixDQUFDLCtCQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBbUIsRUFBRSxFQUFFO0lBQy9GLE9BQU8sdUJBQXVCLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkUsQ0FBQyxDQUFDLENBQUMifQ==
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,6 @@
1
+ import { EggPrototype, InjectObjectProto } from '@eggjs/tegg-metadata';
2
+ export declare class ContextObjectGraph {
3
+ private static eggObjectInitRecorder;
4
+ static getContextProto(proto: EggPrototype): InjectObjectProto[];
5
+ private static doGetContextProto;
6
+ }
@@ -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, ctx?: EggContext): Promise<EggObject>;
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, ctx) {
24
- return EggObjectFactory_1.EggObjectFactory.createObject(name, proto, ctx);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQWx3YXlzTmV3T2JqZWN0Q29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltcGwvRWdnQWx3YXlzTmV3T2JqZWN0Q29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLDBEQUFzRTtBQUd0RSxrRUFBK0Q7QUFDL0Qsd0VBQXFFO0FBRXJFLE1BQWEsMkJBQTJCO0lBSXRDO1FBQ0UsSUFBSSxDQUFDLEVBQUUsR0FBRyw2QkFBNkIsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTztJQUNULENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTztJQUNULENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBWSxFQUFFLEtBQW1CLEVBQUUsR0FBZ0I7UUFDNUUsT0FBTyxtQ0FBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxhQUFhO0lBQ2YsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsYUFBYTtJQUNmLENBQUM7O0FBbENILGtFQW1DQztBQWxDUSxvQ0FBUSxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQztBQW9DdEQseUNBQW1CLENBQUMsMEJBQTBCLENBQUMsK0JBQWMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUMifQ==
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, ctx?: EggContext);
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, ctx?: EggContext): Promise<EggObjectImpl>;
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, ctx) {
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
- this.ctx = ctx;
15
- this.id = tegg_lifecycle_1.IdenticalUtil.createObjectId(this.proto.id, (_a = this.ctx) === null || _a === void 0 ? void 0 : _a.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
- const injectObj = await EggContainerFactory_1.EggContainerFactory.getOrCreateEggObject(proto, injectObject.objName, this.ctx);
42
- this.injectProperty(injectObject.refName, EggObjectUtil_1.EggObjectUtil.eggObjectGetProperty(injectObj));
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, ctx) {
86
- const obj = new EggObjectImpl(name, proto, ctx);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0SW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbXBsL0VnZ09iamVjdEltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrREFBbUg7QUFDbkgsd0RBQXFFO0FBR3JFLDBEQUEwRTtBQUMxRSx3RUFBcUU7QUFDckUsbURBQWdEO0FBRWhELE1BQXFCLGFBQWE7SUFTaEMsWUFBWSxJQUFtQixFQUFFLEtBQW1CLEVBQUUsR0FBZ0I7O1FBUDlELFdBQU0sR0FBb0IsMkJBQWUsQ0FBQyxPQUFPLENBQUM7UUFReEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsRUFBRSxHQUFHLDhCQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBOEI7UUFDdkMsZ0JBQWdCO1FBQ2hCLGtDQUFrQztRQUNsQyxpQkFBaUI7UUFDakIsbUNBQW1DO1FBQ25DLG9CQUFvQjtRQUNwQixJQUFJO1lBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBMEIsQ0FBQztZQUV6RCxjQUFjO1lBQ2QsTUFBTSxrQ0FBc0IsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hELFlBQVk7WUFDWixJQUFJLGdCQUFnQixDQUFDLGFBQWEsRUFBRTtnQkFDbEMsTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN4QztZQUVELElB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
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0VXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbXBsL0VnZ09iamVjdFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBYSxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxTQUFvQjtRQUM5QyxPQUFPO1lBQ0wsR0FBRztnQkFDRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDdkIsQ0FBQztZQUNELFlBQVksRUFBRSxLQUFLO1lBQ25CLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFWRCxzQ0FVQyJ9
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, ctx?: EggContext): Promise<EggObject>;
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, ctx) {
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, ctx);
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, this);
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, (_, ctx) => {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RFZ2dDb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL0Fic3RyYWN0RWdnQ29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBK0Y7QUFDL0YsMERBQXdGO0FBSXhGLDhEQUFrRDtBQUNsRCx3RUFBcUU7QUFDckUsa0VBQStEO0FBRS9ELE1BQXNCLGtCQUFrQjtJQUF4QztRQUNVLGdCQUFXLEdBQThCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDbkQsa0JBQWEsR0FBd0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMvRCxpQkFBWSxHQUE4QyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3BFLHdCQUFtQixHQUF1RCxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBMkU5RixDQUFDO0lBdkVDLGdCQUFnQixDQUFDLElBQVksRUFBRSxLQUFtQjtRQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQUk7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBK0I7UUFDM0MsTUFBTSxvQ0FBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUQsTUFBTSxJQUFJLEdBQWdCLEVBQUUsQ0FBQztRQUM3QixLQUFLLE1BQU0sV0FBVyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEQsS0FBSyxNQUFNLFFBQVEsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckI7U0FDRjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsS0FB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
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RFZ2dDb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL0Fic3RyYWN0RWdnQ29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBK0Y7QUFDL0YsMERBQXdGO0FBSXhGLDhEQUFrRDtBQUNsRCx3RUFBcUU7QUFDckUsa0VBQStEO0FBQy9ELHFEQUFrRDtBQUVsRCxNQUFzQixrQkFBa0I7SUFBeEM7UUFDVSxnQkFBVyxHQUE4QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ25ELGtCQUFhLEdBQXdDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDL0QsaUJBQVksR0FBOEMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNwRSx3QkFBbUIsR0FBdUQsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQTJFOUYsQ0FBQztJQXZFQyxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsS0FBbUI7UUFDaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFJO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQStCO1FBQzNDLE1BQU0sb0NBQXVCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFELE1BQU0sSUFBSSxHQUFnQixFQUFFLENBQUM7UUFDN0IsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BELEtBQUssTUFBTSxRQUFRLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JCO1NBQ0Y7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQyxHQUFHLEVBQUMsRUFBRTtZQUNyQyxNQUFNLG1DQUFnQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFzQixFQUFFLEtBQW1CO1FBQ3RELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDOUQ7UUFDRCxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFzQixFQUFFLEtBQW1CO1FBQ3BFLE1BQU0sV0FBVyxHQUFHLDBCQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUIsTUFBTSxrQkFBa0IsR0FBRywwQkFBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakMsTUFBTSxVQUFVLEdBQUcsbUNBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDOUQsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDekMsTUFBTSxHQUFHLEdBQUcsTUFBTSxVQUFVLENBQUM7Z0JBQzdCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRTtvQkFDNUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzNDO2dCQUNELFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLE1BQU0sa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BDO1NBQ0Y7UUFDRCxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBK0I7UUFDeEMsTUFBTSxvQ0FBdUIsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pELEtBQUssTUFBTSxDQUFFLElBQUksRUFBRSxLQUFLLENBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2hELE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM5QztRQUNELE1BQU0sb0NBQXVCLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBb0IsRUFBRSxHQUFRO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0Y7QUEvRUQsZ0RBK0VDO0FBRUQseUNBQW1CLENBQUMsMEJBQTBCLENBQUMsK0JBQWMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO0lBQzFFLE1BQU0sR0FBRyxHQUFHLCtCQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDeEMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQUNwQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDLENBQUMifQ==
@@ -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, ctx?: EggContext): Promise<EggObject>;
11
- getEggObject(name: EggPrototypeName, proto: EggPrototype, ctx?: EggContext): EggObject;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9hZFVuaXRJbnN0YW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9Mb2FkVW5pdEluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDBEQUFzRDtBQVl6QyxRQUFBLDZCQUE2QixHQUFHLElBQUksOEJBQWEsRUFBc0QsQ0FBQyJ9
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": "1.4.3",
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": "^1.4.3",
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": "^1.4.3"
42
+ "@eggjs/tegg-metadata": "^3.0.0"
43
43
  },
44
44
  "devDependencies": {
45
- "@eggjs/tegg-loader": "^1.4.3"
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": "93f94727f904dbe96e57cbcc9c0a3b2ff7bd0bb6"
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