@eggjs/lifecycle 4.0.0-beta.35 → 4.0.0-beta.36

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.
@@ -1,11 +1,15 @@
1
- import type { Id } from '@eggjs/tegg-types';
2
- export declare class IdenticalUtil {
3
- private static objIndex;
4
- private static protoIndex;
5
- private static ctxIndex;
6
- static createLoadUnitId(loadUnitName: string): Id;
7
- static createProtoId(loadUnitId: Id, name: PropertyKey): Id;
8
- static createLoadUnitInstanceId(loadUnitId: Id): Id;
9
- static createContextId(traceId?: string): Id;
10
- static createObjectId(protoId: Id, ctxId?: Id): Id;
1
+ import { Id } from "@eggjs/tegg-types";
2
+
3
+ //#region src/IdenticalObject.d.ts
4
+ declare class IdenticalUtil {
5
+ private static objIndex;
6
+ private static protoIndex;
7
+ private static ctxIndex;
8
+ static createLoadUnitId(loadUnitName: string): Id;
9
+ static createProtoId(loadUnitId: Id, name: PropertyKey): Id;
10
+ static createLoadUnitInstanceId(loadUnitId: Id): Id;
11
+ static createContextId(traceId?: string): Id;
12
+ static createObjectId(protoId: Id, ctxId?: Id): Id;
11
13
  }
14
+ //#endregion
15
+ export { IdenticalUtil };
@@ -1,33 +1,26 @@
1
- export class IdenticalUtil {
2
- static objIndex = 0;
3
- static protoIndex = 0;
4
- static ctxIndex = 0;
5
- static createLoadUnitId(loadUnitName) {
6
- // LOAD_UNIT:xxx
7
- return `LOAD_UNIT:${loadUnitName}`;
8
- }
9
- static createProtoId(loadUnitId, name) {
10
- // LOAD_UNIT:xxx:PROTO:CONTEXT:xxx
11
- return `${loadUnitId}:PROTO:${this.protoIndex++}:${String(name)}`;
12
- }
13
- static createLoadUnitInstanceId(loadUnitId) {
14
- // LOAD_UNIT:xxx:INSTANCE
15
- return `${loadUnitId}:INSTANCE`;
16
- }
17
- static createContextId(traceId) {
18
- // CONTEXT:0
19
- if (traceId) {
20
- return `CONTEXT:${traceId}:${this.ctxIndex++}`;
21
- }
22
- return `CONTEXT:${this.ctxIndex++}`;
23
- }
24
- static createObjectId(protoId, ctxId) {
25
- if (ctxId) {
26
- // LOAD_UNIT:xxx:PROTO:CONTEXT:xxx:INSTANCE:CONTEXT:0
27
- return `${protoId}:INSTANCE:${ctxId}`;
28
- }
29
- // LOAD_UNIT:xxx:PROTO:CONTEXT:xxx:INSTANCE:0
30
- return `${protoId}:INSTANCE:${this.objIndex++}`;
31
- }
32
- }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWRlbnRpY2FsT2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0lkZW50aWNhbE9iamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sYUFBYTtJQUNoQixNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNwQixNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUN0QixNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUU1QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsWUFBb0I7UUFDMUMsZ0JBQWdCO1FBQ2hCLE9BQU8sYUFBYSxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFjLEVBQUUsSUFBaUI7UUFDcEQsa0NBQWtDO1FBQ2xDLE9BQU8sR0FBRyxVQUFVLFVBQVUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFFRCxNQUFNLENBQUMsd0JBQXdCLENBQUMsVUFBYztRQUM1Qyx5QkFBeUI7UUFDekIsT0FBTyxHQUFHLFVBQVUsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQWdCO1FBQ3JDLFlBQVk7UUFDWixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxXQUFXLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxXQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQVcsRUFBRSxLQUFVO1FBQzNDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixxREFBcUQ7WUFDckQsT0FBTyxHQUFHLE9BQU8sYUFBYSxLQUFLLEVBQUUsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsNkNBQTZDO1FBQzdDLE9BQU8sR0FBRyxPQUFPLGFBQWEsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7SUFDbEQsQ0FBQyJ9
1
+ //#region src/IdenticalObject.ts
2
+ var IdenticalUtil = class {
3
+ static objIndex = 0;
4
+ static protoIndex = 0;
5
+ static ctxIndex = 0;
6
+ static createLoadUnitId(loadUnitName) {
7
+ return `LOAD_UNIT:${loadUnitName}`;
8
+ }
9
+ static createProtoId(loadUnitId, name) {
10
+ return `${loadUnitId}:PROTO:${this.protoIndex++}:${String(name)}`;
11
+ }
12
+ static createLoadUnitInstanceId(loadUnitId) {
13
+ return `${loadUnitId}:INSTANCE`;
14
+ }
15
+ static createContextId(traceId) {
16
+ if (traceId) return `CONTEXT:${traceId}:${this.ctxIndex++}`;
17
+ return `CONTEXT:${this.ctxIndex++}`;
18
+ }
19
+ static createObjectId(protoId, ctxId) {
20
+ if (ctxId) return `${protoId}:INSTANCE:${ctxId}`;
21
+ return `${protoId}:INSTANCE:${this.objIndex++}`;
22
+ }
23
+ };
24
+
25
+ //#endregion
26
+ export { IdenticalUtil };
@@ -1,21 +1,25 @@
1
- import type { EggPrototype, EggProtoImplClass, LifecycleContext, LifecycleHook, LifecycleHookName, LifecycleObject } from '@eggjs/tegg-types';
2
- export declare class LifecycleUtil<T extends LifecycleContext, R extends LifecycleObject<T>> {
3
- private lifecycleSet;
4
- private objLifecycleSet;
5
- registerLifecycle(lifecycle: LifecycleHook<T, R>): void;
6
- deleteLifecycle(lifecycle: LifecycleHook<T, R>): void;
7
- getLifecycleList(): LifecycleHook<T, R>[];
8
- registerObjectLifecycle(obj: R, lifecycle: LifecycleHook<T, R>): void;
9
- deleteObjectLifecycle(obj: R, lifecycle: LifecycleHook<T, R>): void;
10
- clearObjectLifecycle(obj: R): void;
11
- getObjectLifecycleList(obj: R): LifecycleHook<T, R>[];
12
- objectPreCreate(ctx: T, obj: R): Promise<void>;
13
- objectPostCreate(ctx: T, obj: R): Promise<void>;
14
- objectPreDestroy(ctx: T, obj: R): Promise<void>;
15
- static callPreCreate<T extends LifecycleContext, R extends LifecycleObject<T>>(lifecycle: LifecycleHook<T, R> | undefined, ctx: T, obj: R): Promise<void>;
16
- static callPostCreate<T extends LifecycleContext, R extends LifecycleObject<T>>(lifecycle: LifecycleHook<T, R> | undefined, ctx: T, obj: R): Promise<void>;
17
- static callPreDestroy<T extends LifecycleContext, R extends LifecycleObject<T>>(lifecycle: LifecycleHook<T, R> | undefined, ctx: T, obj: R): Promise<void>;
18
- static setLifecycleHook(method: string, hookName: LifecycleHookName, clazz: EggProtoImplClass): void;
19
- getLifecycleHook(hookName: LifecycleHookName, proto: EggPrototype): LifecycleHookName | undefined;
20
- static getStaticLifecycleHook(hookName: LifecycleHookName, clazz: EggProtoImplClass): string | undefined;
1
+ import { EggProtoImplClass, EggPrototype, LifecycleContext, LifecycleHook, LifecycleHookName, LifecycleObject } from "@eggjs/tegg-types";
2
+
3
+ //#region src/LifycycleUtil.d.ts
4
+ declare class LifecycleUtil<T extends LifecycleContext, R extends LifecycleObject<T>> {
5
+ private lifecycleSet;
6
+ private objLifecycleSet;
7
+ registerLifecycle(lifecycle: LifecycleHook<T, R>): void;
8
+ deleteLifecycle(lifecycle: LifecycleHook<T, R>): void;
9
+ getLifecycleList(): LifecycleHook<T, R>[];
10
+ registerObjectLifecycle(obj: R, lifecycle: LifecycleHook<T, R>): void;
11
+ deleteObjectLifecycle(obj: R, lifecycle: LifecycleHook<T, R>): void;
12
+ clearObjectLifecycle(obj: R): void;
13
+ getObjectLifecycleList(obj: R): LifecycleHook<T, R>[];
14
+ objectPreCreate(ctx: T, obj: R): Promise<void>;
15
+ objectPostCreate(ctx: T, obj: R): Promise<void>;
16
+ objectPreDestroy(ctx: T, obj: R): Promise<void>;
17
+ static callPreCreate<T extends LifecycleContext, R extends LifecycleObject<T>>(lifecycle: LifecycleHook<T, R> | undefined, ctx: T, obj: R): Promise<void>;
18
+ static callPostCreate<T extends LifecycleContext, R extends LifecycleObject<T>>(lifecycle: LifecycleHook<T, R> | undefined, ctx: T, obj: R): Promise<void>;
19
+ static callPreDestroy<T extends LifecycleContext, R extends LifecycleObject<T>>(lifecycle: LifecycleHook<T, R> | undefined, ctx: T, obj: R): Promise<void>;
20
+ static setLifecycleHook(method: string, hookName: LifecycleHookName, clazz: EggProtoImplClass): void;
21
+ getLifecycleHook(hookName: LifecycleHookName, proto: EggPrototype): LifecycleHookName | undefined;
22
+ static getStaticLifecycleHook(hookName: LifecycleHookName, clazz: EggProtoImplClass): string | undefined;
21
23
  }
24
+ //#endregion
25
+ export { LifecycleUtil };
@@ -1,81 +1,75 @@
1
- import { MetadataUtil } from '@eggjs/core-decorator';
2
- export class LifecycleUtil {
3
- lifecycleSet = new Set();
4
- objLifecycleSet = new Map();
5
- registerLifecycle(lifecycle) {
6
- this.lifecycleSet.add(lifecycle);
7
- }
8
- deleteLifecycle(lifecycle) {
9
- this.lifecycleSet.delete(lifecycle);
10
- }
11
- getLifecycleList() {
12
- return Array.from(this.lifecycleSet);
13
- }
14
- registerObjectLifecycle(obj, lifecycle) {
15
- if (!this.objLifecycleSet.has(obj.id)) {
16
- this.objLifecycleSet.set(obj.id, new Set());
17
- }
18
- this.objLifecycleSet.get(obj.id).add(lifecycle);
19
- }
20
- deleteObjectLifecycle(obj, lifecycle) {
21
- this.objLifecycleSet.get(obj.id)?.delete(lifecycle);
22
- }
23
- clearObjectLifecycle(obj) {
24
- this.objLifecycleSet.delete(obj.id);
25
- }
26
- getObjectLifecycleList(obj) {
27
- if (this.objLifecycleSet.has(obj.id)) {
28
- return Array.from(this.objLifecycleSet.get(obj.id));
29
- }
30
- return [];
31
- }
32
- async objectPreCreate(ctx, obj) {
33
- const globalLifecycleList = this.getLifecycleList();
34
- const objLifecycleList = this.getObjectLifecycleList(obj);
35
- await Promise.all(globalLifecycleList.map((lifecycle) => LifecycleUtil.callPreCreate(lifecycle, ctx, obj)));
36
- await Promise.all(objLifecycleList.map((lifecycle) => LifecycleUtil.callPreCreate(lifecycle, ctx, obj)));
37
- }
38
- async objectPostCreate(ctx, obj) {
39
- const lifecycleList = this.getLifecycleList();
40
- const objLifecycleList = this.getObjectLifecycleList(obj);
41
- await Promise.all(lifecycleList.map((lifecycle) => LifecycleUtil.callPostCreate(lifecycle, ctx, obj)));
42
- await Promise.all(objLifecycleList.map((lifecycle) => LifecycleUtil.callPostCreate(lifecycle, ctx, obj)));
43
- }
44
- async objectPreDestroy(ctx, obj) {
45
- const lifecycleList = this.getLifecycleList();
46
- const objLifecycleList = this.getObjectLifecycleList(obj);
47
- await Promise.all(lifecycleList.map((lifecycle) => LifecycleUtil.callPreDestroy(lifecycle, ctx, obj)));
48
- await Promise.all(objLifecycleList.map((lifecycle) => LifecycleUtil.callPreDestroy(lifecycle, ctx, obj)));
49
- }
50
- static async callPreCreate(lifecycle, ctx, obj) {
51
- if (!lifecycle || !lifecycle.preCreate) {
52
- return;
53
- }
54
- await lifecycle.preCreate(ctx, obj);
55
- }
56
- static async callPostCreate(lifecycle, ctx, obj) {
57
- if (!lifecycle || !lifecycle.postCreate) {
58
- return;
59
- }
60
- await lifecycle.postCreate(ctx, obj);
61
- }
62
- static async callPreDestroy(lifecycle, ctx, obj) {
63
- if (!lifecycle || !lifecycle.preDestroy) {
64
- return;
65
- }
66
- await lifecycle.preDestroy(ctx, obj);
67
- }
68
- static setLifecycleHook(method, hookName, clazz) {
69
- const LIFECYCLE_HOOK = Symbol.for(`EggPrototype#Lifecycle${hookName}`);
70
- MetadataUtil.defineMetaData(LIFECYCLE_HOOK, method, clazz);
71
- }
72
- getLifecycleHook(hookName, proto) {
73
- const LIFECYCLE_HOOK = Symbol.for(`EggPrototype#Lifecycle${hookName}`);
74
- return proto.getMetaData(LIFECYCLE_HOOK);
75
- }
76
- static getStaticLifecycleHook(hookName, clazz) {
77
- const LIFECYCLE_HOOK = Symbol.for(`EggPrototype#Lifecycle${hookName}`);
78
- return MetadataUtil.getMetaData(LIFECYCLE_HOOK, clazz);
79
- }
80
- }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlmeWN5Y2xlVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9MaWZ5Y3ljbGVVdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVVyRCxNQUFNLE9BQU8sYUFBYTtJQUNoQixZQUFZLEdBQTZCLElBQUksR0FBRyxFQUFFLENBQUM7SUFDbkQsZUFBZSxHQUEwQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTNFLGlCQUFpQixDQUFDLFNBQThCO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBOEI7UUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELHVCQUF1QixDQUFDLEdBQU0sRUFBRSxTQUE4QjtRQUM1RCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELHFCQUFxQixDQUFDLEdBQU0sRUFBRSxTQUE4QjtRQUMxRCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFD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
1
+ import { MetadataUtil } from "@eggjs/core-decorator";
2
+
3
+ //#region src/LifycycleUtil.ts
4
+ var LifecycleUtil = class LifecycleUtil {
5
+ lifecycleSet = /* @__PURE__ */ new Set();
6
+ objLifecycleSet = /* @__PURE__ */ new Map();
7
+ registerLifecycle(lifecycle) {
8
+ this.lifecycleSet.add(lifecycle);
9
+ }
10
+ deleteLifecycle(lifecycle) {
11
+ this.lifecycleSet.delete(lifecycle);
12
+ }
13
+ getLifecycleList() {
14
+ return Array.from(this.lifecycleSet);
15
+ }
16
+ registerObjectLifecycle(obj, lifecycle) {
17
+ if (!this.objLifecycleSet.has(obj.id)) this.objLifecycleSet.set(obj.id, /* @__PURE__ */ new Set());
18
+ this.objLifecycleSet.get(obj.id).add(lifecycle);
19
+ }
20
+ deleteObjectLifecycle(obj, lifecycle) {
21
+ this.objLifecycleSet.get(obj.id)?.delete(lifecycle);
22
+ }
23
+ clearObjectLifecycle(obj) {
24
+ this.objLifecycleSet.delete(obj.id);
25
+ }
26
+ getObjectLifecycleList(obj) {
27
+ if (this.objLifecycleSet.has(obj.id)) return Array.from(this.objLifecycleSet.get(obj.id));
28
+ return [];
29
+ }
30
+ async objectPreCreate(ctx, obj) {
31
+ const globalLifecycleList = this.getLifecycleList();
32
+ const objLifecycleList = this.getObjectLifecycleList(obj);
33
+ await Promise.all(globalLifecycleList.map((lifecycle) => LifecycleUtil.callPreCreate(lifecycle, ctx, obj)));
34
+ await Promise.all(objLifecycleList.map((lifecycle) => LifecycleUtil.callPreCreate(lifecycle, ctx, obj)));
35
+ }
36
+ async objectPostCreate(ctx, obj) {
37
+ const lifecycleList = this.getLifecycleList();
38
+ const objLifecycleList = this.getObjectLifecycleList(obj);
39
+ await Promise.all(lifecycleList.map((lifecycle) => LifecycleUtil.callPostCreate(lifecycle, ctx, obj)));
40
+ await Promise.all(objLifecycleList.map((lifecycle) => LifecycleUtil.callPostCreate(lifecycle, ctx, obj)));
41
+ }
42
+ async objectPreDestroy(ctx, obj) {
43
+ const lifecycleList = this.getLifecycleList();
44
+ const objLifecycleList = this.getObjectLifecycleList(obj);
45
+ await Promise.all(lifecycleList.map((lifecycle) => LifecycleUtil.callPreDestroy(lifecycle, ctx, obj)));
46
+ await Promise.all(objLifecycleList.map((lifecycle) => LifecycleUtil.callPreDestroy(lifecycle, ctx, obj)));
47
+ }
48
+ static async callPreCreate(lifecycle, ctx, obj) {
49
+ if (!lifecycle || !lifecycle.preCreate) return;
50
+ await lifecycle.preCreate(ctx, obj);
51
+ }
52
+ static async callPostCreate(lifecycle, ctx, obj) {
53
+ if (!lifecycle || !lifecycle.postCreate) return;
54
+ await lifecycle.postCreate(ctx, obj);
55
+ }
56
+ static async callPreDestroy(lifecycle, ctx, obj) {
57
+ if (!lifecycle || !lifecycle.preDestroy) return;
58
+ await lifecycle.preDestroy(ctx, obj);
59
+ }
60
+ static setLifecycleHook(method, hookName, clazz) {
61
+ const LIFECYCLE_HOOK = Symbol.for(`EggPrototype#Lifecycle${hookName}`);
62
+ MetadataUtil.defineMetaData(LIFECYCLE_HOOK, method, clazz);
63
+ }
64
+ getLifecycleHook(hookName, proto) {
65
+ const LIFECYCLE_HOOK = Symbol.for(`EggPrototype#Lifecycle${hookName}`);
66
+ return proto.getMetaData(LIFECYCLE_HOOK);
67
+ }
68
+ static getStaticLifecycleHook(hookName, clazz) {
69
+ const LIFECYCLE_HOOK = Symbol.for(`EggPrototype#Lifecycle${hookName}`);
70
+ return MetadataUtil.getMetaData(LIFECYCLE_HOOK, clazz);
71
+ }
72
+ };
73
+
74
+ //#endregion
75
+ export { LifecycleUtil };
@@ -1,11 +1,14 @@
1
- import type { EggProtoImplClass } from '@eggjs/tegg-types';
1
+ import { EggProtoImplClass } from "@eggjs/tegg-types";
2
+
3
+ //#region src/decorator/index.d.ts
2
4
  type LifecycleDecorator = () => (target: object, methodName: string) => void;
3
5
  type LifecycleStaticDecorator = () => (target: EggProtoImplClass, methodName: string) => void;
4
- export declare const LifecyclePostConstruct: LifecycleDecorator;
5
- export declare const LifecyclePreInject: LifecycleDecorator;
6
- export declare const LifecyclePostInject: LifecycleDecorator;
7
- export declare const LifecycleInit: LifecycleDecorator;
8
- export declare const LifecyclePreDestroy: LifecycleDecorator;
9
- export declare const LifecycleDestroy: LifecycleDecorator;
10
- export declare const LifecyclePreLoad: LifecycleStaticDecorator;
11
- export {};
6
+ declare const LifecyclePostConstruct: LifecycleDecorator;
7
+ declare const LifecyclePreInject: LifecycleDecorator;
8
+ declare const LifecyclePostInject: LifecycleDecorator;
9
+ declare const LifecycleInit: LifecycleDecorator;
10
+ declare const LifecyclePreDestroy: LifecycleDecorator;
11
+ declare const LifecycleDestroy: LifecycleDecorator;
12
+ declare const LifecyclePreLoad: LifecycleStaticDecorator;
13
+ //#endregion
14
+ export { LifecycleDestroy, LifecycleInit, LifecyclePostConstruct, LifecyclePostInject, LifecyclePreDestroy, LifecyclePreInject, LifecyclePreLoad };
@@ -1,27 +1,29 @@
1
1
  import { LifecycleUtil } from "../LifycycleUtil.js";
2
+
3
+ //#region src/decorator/index.ts
2
4
  function createLifecycle(hookName) {
3
- return () => {
4
- return function (target, methodName) {
5
- const clazz = target.constructor;
6
- LifecycleUtil.setLifecycleHook(methodName, hookName, clazz);
7
- };
8
- };
5
+ return () => {
6
+ return function(target, methodName) {
7
+ const clazz = target.constructor;
8
+ LifecycleUtil.setLifecycleHook(methodName, hookName, clazz);
9
+ };
10
+ };
9
11
  }
10
12
  function createStaticLifecycle(hookName) {
11
- return () => {
12
- return function (target, methodName) {
13
- if (typeof target !== 'function') {
14
- throw new Error(`${hookName} must be a static function`);
15
- }
16
- LifecycleUtil.setLifecycleHook(methodName, hookName, target);
17
- };
18
- };
13
+ return () => {
14
+ return function(target, methodName) {
15
+ if (typeof target !== "function") throw new Error(`${hookName} must be a static function`);
16
+ LifecycleUtil.setLifecycleHook(methodName, hookName, target);
17
+ };
18
+ };
19
19
  }
20
- export const LifecyclePostConstruct = createLifecycle('postConstruct');
21
- export const LifecyclePreInject = createLifecycle('preInject');
22
- export const LifecyclePostInject = createLifecycle('postInject');
23
- export const LifecycleInit = createLifecycle('init');
24
- export const LifecyclePreDestroy = createLifecycle('preDestroy');
25
- export const LifecycleDestroy = createLifecycle('destroy');
26
- export const LifecyclePreLoad = createStaticLifecycle('preLoad');
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUlwRCxTQUFTLGVBQWUsQ0FBQyxRQUEyQjtJQUNsRCxPQUFPLEdBQUcsRUFBRTtRQUNWLE9BQU8sVUFBVSxNQUFjLEVBQUUsVUFBa0I7WUFDakQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQWdDLENBQUM7WUFDdEQsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUlELFNBQVMscUJBQXFCLENBQUMsUUFBMkI7SUFDeEQsT0FBTyxHQUFHLEVBQUU7UUFDVixPQUFPLFVBQVUsTUFBeUIsRUFBRSxVQUFrQjtZQUM1RCxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsUUFBUSw0QkFBNEIsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFDRCxhQUFhLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXVCLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUMzRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBdUIsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ25GLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUF1QixlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDckYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUF1QixlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDekUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXVCLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNyRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBdUIsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9FLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUE2QixxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyJ9
20
+ const LifecyclePostConstruct = createLifecycle("postConstruct");
21
+ const LifecyclePreInject = createLifecycle("preInject");
22
+ const LifecyclePostInject = createLifecycle("postInject");
23
+ const LifecycleInit = createLifecycle("init");
24
+ const LifecyclePreDestroy = createLifecycle("preDestroy");
25
+ const LifecycleDestroy = createLifecycle("destroy");
26
+ const LifecyclePreLoad = createStaticLifecycle("preLoad");
27
+
28
+ //#endregion
29
+ export { LifecycleDestroy, LifecycleInit, LifecyclePostConstruct, LifecyclePostInject, LifecyclePreDestroy, LifecyclePreInject, LifecyclePreLoad };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export * from '@eggjs/tegg-types/lifecycle';
2
- export * from './LifycycleUtil.ts';
3
- export * from './IdenticalObject.ts';
4
- export * from './decorator/index.ts';
1
+ import { LifecycleUtil } from "./LifycycleUtil.js";
2
+ import { IdenticalUtil } from "./IdenticalObject.js";
3
+ import { LifecycleDestroy, LifecycleInit, LifecyclePostConstruct, LifecyclePostInject, LifecyclePreDestroy, LifecyclePreInject, LifecyclePreLoad } from "./decorator/index.js";
4
+ export * from "@eggjs/tegg-types/lifecycle";
5
+ export { IdenticalUtil, LifecycleDestroy, LifecycleInit, LifecyclePostConstruct, LifecyclePostInject, LifecyclePreDestroy, LifecyclePreInject, LifecyclePreLoad, LifecycleUtil };
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
- export * from '@eggjs/tegg-types/lifecycle';
2
- export * from "./LifycycleUtil.js";
3
- export * from "./IdenticalObject.js";
4
- export * from "./decorator/index.js";
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxzQkFBc0IsQ0FBQyJ9
1
+ import { LifecycleUtil } from "./LifycycleUtil.js";
2
+ import { IdenticalUtil } from "./IdenticalObject.js";
3
+ import { LifecycleDestroy, LifecycleInit, LifecyclePostConstruct, LifecyclePostInject, LifecyclePreDestroy, LifecyclePreInject, LifecyclePreLoad } from "./decorator/index.js";
4
+
5
+ export * from "@eggjs/tegg-types/lifecycle"
6
+
7
+ export { IdenticalUtil, LifecycleDestroy, LifecycleInit, LifecyclePostConstruct, LifecyclePostInject, LifecyclePreDestroy, LifecyclePreInject, LifecyclePreLoad, LifecycleUtil };
package/package.json CHANGED
@@ -1,54 +1,50 @@
1
1
  {
2
2
  "name": "@eggjs/lifecycle",
3
- "version": "4.0.0-beta.35",
3
+ "version": "4.0.0-beta.36",
4
4
  "description": "tegg lifecycle definition and decorators",
5
5
  "keywords": [
6
6
  "egg",
7
- "typescript",
8
7
  "lifecycle",
9
- "tegg"
8
+ "tegg",
9
+ "typescript"
10
10
  ],
11
- "type": "module",
12
- "exports": {
13
- ".": "./dist/index.js",
14
- "./package.json": "./package.json"
15
- },
16
- "files": [
17
- "dist"
18
- ],
19
- "author": "killagu <killa123@126.com>",
20
- "license": "MIT",
21
11
  "homepage": "https://github.com/eggjs/egg/tree/next/tegg/core/lifecycle",
22
12
  "bugs": {
23
13
  "url": "https://github.com/eggjs/egg/issues"
24
14
  },
15
+ "license": "MIT",
16
+ "author": "killagu <killa123@126.com>",
25
17
  "repository": {
26
18
  "type": "git",
27
19
  "url": "git+https://github.com/eggjs/egg.git",
28
20
  "directory": "tegg/core/lifecycle"
29
21
  },
30
- "engines": {
31
- "node": ">=22.18.0"
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "type": "module",
26
+ "main": "./dist/index.js",
27
+ "module": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "exports": {
30
+ ".": "./dist/index.js",
31
+ "./package.json": "./package.json"
32
32
  },
33
33
  "publishConfig": {
34
34
  "access": "public"
35
35
  },
36
36
  "dependencies": {
37
- "@eggjs/core-decorator": "4.0.0-beta.35",
38
- "@eggjs/tegg-types": "4.0.0-beta.35"
37
+ "@eggjs/core-decorator": "4.0.0-beta.36",
38
+ "@eggjs/tegg-types": "4.0.0-beta.36"
39
39
  },
40
40
  "devDependencies": {
41
- "@types/node": "^24.10.1",
42
- "typescript": "^5.9.3",
43
- "tsdown": "^0.17.0",
44
- "unplugin-unused": "^0.5.4"
41
+ "@types/node": "^24.10.2",
42
+ "typescript": "^5.9.3"
43
+ },
44
+ "engines": {
45
+ "node": ">=22.18.0"
45
46
  },
46
- "main": "./dist/index.js",
47
- "module": "./dist/index.js",
48
- "types": "./dist/index.d.ts",
49
47
  "scripts": {
50
- "clean": "rimraf dist *.tsbuildinfo",
51
- "build": "tsdown && npm run clean && tsc -p tsconfig.build.json",
52
- "typecheck": "tsc --noEmit"
48
+ "typecheck": "tsgo --noEmit"
53
49
  }
54
50
  }