@eggjs/tegg-schedule-plugin 4.0.0-beta.1 → 4.0.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @eggjs/tegg-schedule-plugin
2
2
 
3
+ [![NPM version][npm-image]][npm-url]
4
+ [![Known Vulnerabilities][snyk-image]][snyk-url]
5
+ [![npm download][download-image]][download-url]
6
+ [![Node.js Version](https://img.shields.io/node/v/@eggjs/tegg-schedule-plugin.svg?style=flat)](https://nodejs.org/en/download/)
7
+
8
+ [npm-image]: https://img.shields.io/npm/v/@eggjs/tegg-schedule-plugin.svg?style=flat-square
9
+ [npm-url]: https://npmjs.org/package/@eggjs/tegg-schedule-plugin
10
+ [snyk-image]: https://snyk.io/test/npm/@eggjs/tegg-schedule-plugin/badge.svg?style=flat-square
11
+ [snyk-url]: https://snyk.io/test/npm/@eggjs/tegg-schedule-plugin
12
+ [download-image]: https://img.shields.io/npm/dm/@eggjs/tegg-schedule-plugin.svg?style=flat-square
13
+ [download-url]: https://npmjs.org/package/@eggjs/tegg-schedule-plugin
14
+
3
15
  使用注解的方式来开发 egg 中的 schedule
4
16
 
5
17
  ## Install
@@ -1,4 +1,4 @@
1
- import { EggCore as Agent, ILifecycleBoot } from '@eggjs/core';
1
+ import { Agent, type ILifecycleBoot } from 'egg';
2
2
  export default class ScheduleAppBootHook implements ILifecycleBoot {
3
3
  private readonly agent;
4
4
  private readonly scheduleSubscriberRegister;
package/dist/agent.js ADDED
@@ -0,0 +1,30 @@
1
+ import { Agent } from 'egg';
2
+ import { LoaderFactory } from '@eggjs/tegg-loader';
3
+ import { EggLoadUnitType } from '@eggjs/tegg-metadata';
4
+ import { ScheduleInfoUtil, ScheduleMetaBuilder } from '@eggjs/tegg/schedule';
5
+ import { ScheduleSubscriberRegister } from "./lib/ScheduleSubscriberRegister.js";
6
+ export default class ScheduleAppBootHook {
7
+ agent;
8
+ scheduleSubscriberRegister;
9
+ constructor(agent) {
10
+ this.agent = agent;
11
+ this.scheduleSubscriberRegister = new ScheduleSubscriberRegister(this.agent);
12
+ }
13
+ async didLoad() {
14
+ // FIXME: tegg use lots singleton, in mm.app test case, agent/app in one process
15
+ // if use start tegg in agent, the app will use the same singleton
16
+ // so we should refactor tegg to not use singleton.
17
+ for (const moduleConfig of this.agent.moduleReferences) {
18
+ const loader = LoaderFactory.createLoader(moduleConfig.path, EggLoadUnitType.MODULE);
19
+ const clazzList = await loader.load();
20
+ for (const clazz of clazzList) {
21
+ if (ScheduleInfoUtil.isSchedule(clazz)) {
22
+ const builder = new ScheduleMetaBuilder(clazz);
23
+ const metadata = builder.build();
24
+ this.scheduleSubscriberRegister.register(clazz, metadata);
25
+ }
26
+ }
27
+ }
28
+ }
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBdUIsTUFBTSxLQUFLLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVqRixNQUFNLENBQUMsT0FBTyxPQUFPLG1CQUFtQjtJQUNyQixLQUFLLENBQVE7SUFDYiwwQkFBMEIsQ0FBNkI7SUFFeEUsWUFBWSxLQUFZO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxnRkFBZ0Y7UUFDaEYsa0VBQWtFO1FBQ2xFLG1EQUFtRDtRQUNuRCxLQUFLLE1BQU0sWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN2RCxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JGLE1BQU0sU0FBUyxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RDLEtBQUssTUFBTSxLQUFLLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzlCLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQy9DLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDakMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzVELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiJ9
@@ -1,4 +1,4 @@
1
- import { EggCore as Application, ILifecycleBoot } from '@eggjs/core';
1
+ import type { Application, ILifecycleBoot } from 'egg';
2
2
  export default class ScheduleAppBootHook implements ILifecycleBoot {
3
3
  private readonly app;
4
4
  private readonly scheduleWorkerRegister;
package/dist/app.js ADDED
@@ -0,0 +1,24 @@
1
+ import { ScheduleWorkerRegister } from "./lib/ScheduleWorkerRegister.js";
2
+ import { ScheduleWorkerLoadUnitHook } from "./lib/ScheduleWorkerLoadUnitHook.js";
3
+ import { SchedulePrototypeHook } from "./lib/SchedulePrototypeHook.js";
4
+ export default class ScheduleAppBootHook {
5
+ app;
6
+ scheduleWorkerRegister;
7
+ scheduleWorkerLoadUnitHook;
8
+ schedulePrototypeHook;
9
+ constructor(app) {
10
+ this.app = app;
11
+ this.scheduleWorkerRegister = new ScheduleWorkerRegister(this.app);
12
+ this.scheduleWorkerLoadUnitHook = new ScheduleWorkerLoadUnitHook(this.scheduleWorkerRegister);
13
+ this.schedulePrototypeHook = new SchedulePrototypeHook();
14
+ }
15
+ configWillLoad() {
16
+ this.app.loadUnitLifecycleUtil.registerLifecycle(this.scheduleWorkerLoadUnitHook);
17
+ this.app.eggPrototypeLifecycleUtil.registerLifecycle(this.schedulePrototypeHook);
18
+ }
19
+ async beforeClose() {
20
+ this.app.loadUnitLifecycleUtil.deleteLifecycle(this.scheduleWorkerLoadUnitHook);
21
+ this.app.eggPrototypeLifecycleUtil.deleteLifecycle(this.schedulePrototypeHook);
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RSxNQUFNLENBQUMsT0FBTyxPQUFPLG1CQUFtQjtJQUNyQixHQUFHLENBQWM7SUFDakIsc0JBQXNCLENBQXlCO0lBQy9DLDBCQUEwQixDQUE2QjtJQUN2RCxxQkFBcUIsQ0FBd0I7SUFFOUQsWUFBWSxHQUFnQjtRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM5RixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO0lBQzNELENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ import './types.ts';
@@ -1,2 +1,2 @@
1
- import '@eggjs/tegg-plugin';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLG9CQUFvQixDQUFDIn0=
1
+ import "./types.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLENBQUMifQ==
@@ -1,5 +1,5 @@
1
- import { Context } from '@eggjs/core';
2
- import { EggPrototype } from '@eggjs/tegg-metadata';
3
- import { ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
1
+ import type { Context } from 'egg';
2
+ import type { EggPrototype } from '@eggjs/tegg-metadata';
3
+ import type { ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
4
4
  export type EggScheduleFunction = (ctx: Context, data: any) => Promise<any>;
5
5
  export declare function eggScheduleAdapterFactory(proto: EggPrototype, metaData: ScheduleMetadata<object>): EggScheduleFunction;
@@ -0,0 +1,15 @@
1
+ import { ROOT_PROTO } from '@eggjs/egg-module-common';
2
+ import { EggContainerFactory } from '@eggjs/tegg-runtime';
3
+ export function eggScheduleAdapterFactory(proto, metaData) {
4
+ return async function (ctx, data) {
5
+ ctx[ROOT_PROTO] = proto;
6
+ await ctx.beginModuleScope(async () => {
7
+ if (metaData.disable)
8
+ return;
9
+ const eggObject = await EggContainerFactory.getOrCreateEggObject(proto, proto.name);
10
+ const subscriber = eggObject.obj;
11
+ await subscriber.subscribe(data);
12
+ });
13
+ };
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnU2NoZWR1bGVBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9FZ2dTY2hlZHVsZUFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSTFELE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsS0FBbUIsRUFDbkIsUUFBa0M7SUFFbEMsT0FBTyxLQUFLLFdBQVcsR0FBWSxFQUFFLElBQVM7UUFDNUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN4QixNQUFNLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQyxJQUFJLFFBQVEsQ0FBQyxPQUFPO2dCQUFFLE9BQU87WUFDN0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BGLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxHQUF5QixDQUFDO1lBQ3ZELE1BQU0sVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
@@ -1,4 +1,10 @@
1
+ import type { EggAppConfig } from 'egg';
1
2
  import { ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
3
+ type EggScheduleConfig = EggAppConfig['schedule'];
2
4
  export declare class EggScheduleMetadataConvertor {
3
- static convertToEggSchedule(metadata: ScheduleMetadata<object>): object;
5
+ /**
6
+ * convert to egg schedule config
7
+ */
8
+ static convertToEggSchedule(metadata: ScheduleMetadata<object>): EggScheduleConfig;
4
9
  }
10
+ export {};
@@ -0,0 +1,16 @@
1
+ import { ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
2
+ export class EggScheduleMetadataConvertor {
3
+ /**
4
+ * convert to egg schedule config
5
+ */
6
+ static convertToEggSchedule(metadata) {
7
+ return {
8
+ ...metadata.scheduleData,
9
+ type: metadata.type,
10
+ env: metadata.env,
11
+ disable: metadata.disable,
12
+ immediate: metadata.immediate,
13
+ };
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnU2NoZWR1bGVNZXRhZGF0YUNvbnZlcnRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvRWdnU2NoZWR1bGVNZXRhZGF0YUNvbnZlcnRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUlsRSxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDOztPQUVHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQWtDO1FBQzVELE9BQU87WUFDTCxHQUFHLFFBQVEsQ0FBQyxZQUFZO1lBQ3hCLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtZQUNuQixHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7WUFDakIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO1lBQ3pCLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztTQUNULENBQUM7SUFDekIsQ0FBQztDQUNGIn0=
@@ -1,5 +1,5 @@
1
- import { LifecycleHook } from '@eggjs/tegg-lifecycle';
2
- import { EggPrototype, EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
1
+ import { type LifecycleHook } from '@eggjs/tegg-lifecycle';
2
+ import { type EggPrototype, type EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
3
3
  export declare class SchedulePrototypeHook implements LifecycleHook<EggPrototypeLifecycleContext, EggPrototype> {
4
4
  postCreate(ctx: EggPrototypeLifecycleContext): Promise<void>;
5
5
  }
@@ -0,0 +1,16 @@
1
+ import {} from '@eggjs/tegg-lifecycle';
2
+ import {} from '@eggjs/tegg-metadata';
3
+ import { ScheduleInfoUtil, ScheduleMetadataUtil, ScheduleMetaBuilder } from '@eggjs/tegg-schedule-decorator';
4
+ export class SchedulePrototypeHook {
5
+ async postCreate(ctx) {
6
+ if (!ScheduleInfoUtil.isSchedule(ctx.clazz)) {
7
+ return;
8
+ }
9
+ const builder = new ScheduleMetaBuilder(ctx.clazz);
10
+ const metadata = builder.build();
11
+ if (metadata) {
12
+ ScheduleMetadataUtil.setScheduleMetadata(ctx.clazz, metadata);
13
+ }
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVQcm90b3R5cGVIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9TY2hlZHVsZVByb3RvdHlwZUhvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBd0QsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RyxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBaUM7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2Isb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -1,8 +1,8 @@
1
- import { EggCore as Application } from '@eggjs/core';
2
- import { EggProtoImplClass } from '@eggjs/tegg';
1
+ import type { Agent } from 'egg';
2
+ import { type EggProtoImplClass } from '@eggjs/tegg';
3
3
  import { ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
4
4
  export declare class ScheduleSubscriberRegister {
5
5
  private readonly agent;
6
- constructor(agent: Application);
6
+ constructor(agent: Agent);
7
7
  register(clazz: EggProtoImplClass<object>, metadata: ScheduleMetadata<object>): void;
8
8
  }
@@ -0,0 +1,27 @@
1
+ import { debuglog } from 'node:util';
2
+ import { PrototypeUtil } from '@eggjs/tegg';
3
+ import { ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
4
+ import { EggScheduleMetadataConvertor } from "./EggScheduleMetadataConvertor.js";
5
+ const debug = debuglog('tegg/plugin/schedule/ScheduleSubscriberRegister');
6
+ export class ScheduleSubscriberRegister {
7
+ agent;
8
+ constructor(agent) {
9
+ this.agent = agent;
10
+ }
11
+ register(clazz, metadata) {
12
+ // bind subscriber
13
+ const schedule = EggScheduleMetadataConvertor.convertToEggSchedule(metadata);
14
+ const path = PrototypeUtil.getFilePath(clazz);
15
+ if (!metadata.disable) {
16
+ this.agent.logger.info('[@eggjs/tegg-schedule-plugin]: register schedule %s', path);
17
+ }
18
+ // TODO: why disable is not used?
19
+ // @ts-expect-error agent registerSchedule only need key and schedule config
20
+ this.agent.schedule.registerSchedule({
21
+ schedule,
22
+ key: path,
23
+ });
24
+ debug('register schedule %s, config: %j', path, schedule);
25
+ }
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVTdWJzY3JpYmVyUmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1NjaGVkdWxlU3Vic2NyaWJlclJlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHckMsT0FBTyxFQUFFLGFBQWEsRUFBMEIsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakYsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGlEQUFpRCxDQUFDLENBQUM7QUFFMUUsTUFBTSxPQUFPLDBCQUEwQjtJQUNwQixLQUFLLENBQVE7SUFFOUIsWUFBWSxLQUFZO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBZ0MsRUFBRSxRQUFrQztRQUMzRSxrQkFBa0I7UUFDbEIsTUFBTSxRQUFRLEdBQUcsNEJBQTRCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0UsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxREFBcUQsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBRUQsaUNBQWlDO1FBRWpDLDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNuQyxRQUFRO1lBQ1IsR0FBRyxFQUFFLElBQUk7U0FDVixDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsa0NBQWtDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRiJ9
@@ -1,6 +1,6 @@
1
- import { LifecycleHook } from '@eggjs/tegg';
2
- import { LoadUnit, LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
3
- import { ScheduleWorkerRegister } from './ScheduleWorkerRegister.js';
1
+ import type { LifecycleHook } from '@eggjs/tegg';
2
+ import type { LoadUnit, LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
3
+ import type { ScheduleWorkerRegister } from './ScheduleWorkerRegister.ts';
4
4
  export declare class ScheduleWorkerLoadUnitHook implements LifecycleHook<LoadUnitLifecycleContext, LoadUnit> {
5
5
  private readonly scheduleWorkerRegister;
6
6
  constructor(scheduleWorkerRegister: ScheduleWorkerRegister);
@@ -0,0 +1,21 @@
1
+ import { IS_SCHEDULE, SCHEDULE_METADATA } from '@eggjs/tegg-schedule-decorator';
2
+ export class ScheduleWorkerLoadUnitHook {
3
+ scheduleWorkerRegister;
4
+ constructor(scheduleWorkerRegister) {
5
+ this.scheduleWorkerRegister = scheduleWorkerRegister;
6
+ }
7
+ async postCreate(_, obj) {
8
+ const iterator = obj.iterateEggPrototype();
9
+ for (const proto of iterator) {
10
+ if (!proto.getMetaData(IS_SCHEDULE)) {
11
+ continue;
12
+ }
13
+ const metadata = proto.getMetaData(SCHEDULE_METADATA);
14
+ if (!metadata) {
15
+ continue;
16
+ }
17
+ this.scheduleWorkerRegister.register(proto, metadata);
18
+ }
19
+ }
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVXb3JrZXJMb2FkVW5pdEhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1NjaGVkdWxlV29ya2VyTG9hZFVuaXRIb29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQXlCLE1BQU0sZ0NBQWdDLENBQUM7QUFLdkcsTUFBTSxPQUFPLDBCQUEwQjtJQUNwQixzQkFBc0IsQ0FBeUI7SUFFaEUsWUFBWSxzQkFBOEM7UUFDeEQsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHNCQUFzQixDQUFDO0lBQ3ZELENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLENBQTJCLEVBQUUsR0FBYTtRQUN6RCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQyxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLFNBQVM7WUFDWCxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQXlDLEtBQUssQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM1RixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsU0FBUztZQUNYLENBQUM7WUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -1,5 +1,5 @@
1
- import { EggCore as Application } from '@eggjs/core';
2
- import { EggPrototype } from '@eggjs/tegg-metadata';
1
+ import type { Application } from 'egg';
2
+ import { type EggPrototype } from '@eggjs/tegg-metadata';
3
3
  import { ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
4
4
  export declare class ScheduleWorkerRegister {
5
5
  private readonly app;
@@ -0,0 +1,26 @@
1
+ import { debuglog } from 'node:util';
2
+ import { PrototypeUtil } from '@eggjs/tegg';
3
+ import {} from '@eggjs/tegg-metadata';
4
+ import { ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
5
+ import { eggScheduleAdapterFactory } from "./EggScheduleAdapter.js";
6
+ import { EggScheduleMetadataConvertor } from "./EggScheduleMetadataConvertor.js";
7
+ const debug = debuglog('tegg/plugin/schedule/ScheduleWorkerRegister');
8
+ export class ScheduleWorkerRegister {
9
+ app;
10
+ constructor(app) {
11
+ this.app = app;
12
+ }
13
+ register(proto, metadata) {
14
+ const task = eggScheduleAdapterFactory(proto, metadata);
15
+ const schedule = EggScheduleMetadataConvertor.convertToEggSchedule(metadata);
16
+ const path = proto.getMetaData(PrototypeUtil.FILE_PATH);
17
+ this.app.scheduleWorker.registerSchedule({
18
+ schedule,
19
+ scheduleQueryString: '',
20
+ task,
21
+ key: path,
22
+ });
23
+ debug('register schedule %s, config: %j', path, schedule);
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVXb3JrZXJSZWdpc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvU2NoZWR1bGVXb3JrZXJSZWdpc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWpGLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0FBRXRFLE1BQU0sT0FBTyxzQkFBc0I7SUFDaEIsR0FBRyxDQUFjO0lBRWxDLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFtQixFQUFFLFFBQWtDO1FBQzlELE1BQU0sSUFBSSxHQUFHLHlCQUF5QixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxNQUFNLFFBQVEsR0FBRyw0QkFBNEIsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFTLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN2QyxRQUFRO1lBQ1IsbUJBQW1CLEVBQUUsRUFBRTtZQUN2QixJQUFJO1lBQ0osR0FBRyxFQUFFLElBQUk7U0FDVixDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsa0NBQWtDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRiJ9
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ import '@eggjs/tegg-plugin';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxvQkFBb0IsQ0FBQyJ9
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "schedule"
8
8
  ]
9
9
  },
10
- "version": "4.0.0-beta.1",
10
+ "version": "4.0.0-beta.11",
11
11
  "description": "schedule decorator for egg",
12
12
  "keywords": [
13
13
  "egg",
@@ -18,34 +18,23 @@
18
18
  "schedule"
19
19
  ],
20
20
  "files": [
21
- "app.js",
22
- "app.d.ts",
23
- "agent.js",
24
- "agent.d.ts",
25
- "lib/**/*.js",
26
- "lib/**/*.d.ts",
27
- "app/**/*.js",
28
- "app/**/*.d.ts",
29
- "index.js",
30
- "index.d.ts"
21
+ "dist"
31
22
  ],
32
23
  "type": "module",
33
24
  "exports": {
34
- ".": {
35
- "types": "./index.d.ts",
36
- "default": "./index.js"
37
- },
25
+ ".": "./dist/index.js",
26
+ "./agent": "./dist/agent.js",
27
+ "./app": "./dist/app.js",
28
+ "./lib/EggScheduleAdapter": "./dist/lib/EggScheduleAdapter.js",
29
+ "./lib/EggScheduleMetadataConvertor": "./dist/lib/EggScheduleMetadataConvertor.js",
30
+ "./lib/SchedulePrototypeHook": "./dist/lib/SchedulePrototypeHook.js",
31
+ "./lib/ScheduleSubscriberRegister": "./dist/lib/ScheduleSubscriberRegister.js",
32
+ "./lib/ScheduleWorkerLoadUnitHook": "./dist/lib/ScheduleWorkerLoadUnitHook.js",
33
+ "./lib/ScheduleWorkerRegister": "./dist/lib/ScheduleWorkerRegister.js",
34
+ "./types": "./dist/types.js",
38
35
  "./package.json": "./package.json"
39
36
  },
40
- "scripts": {
41
- "test": "egg-bin test",
42
- "cov": "egg-bin cov",
43
- "clean": "tsc -b --clean",
44
- "tsc": "npm run clean && tsc -p ./tsconfig.pub.json",
45
- "tsc:pub": "npm run tsc",
46
- "prepublishOnly": "npm run tsc"
47
- },
48
- "homepage": "https://github.com/eggjs/tegg",
37
+ "homepage": "https://github.com/eggjs/tegg/tree/next/plugin/schedule",
49
38
  "bugs": {
50
39
  "url": "https://github.com/eggjs/tegg/issues"
51
40
  },
@@ -55,32 +44,47 @@
55
44
  "directory": "plugin/schedule"
56
45
  },
57
46
  "engines": {
58
- "node": ">=20.0.0"
47
+ "node": ">=22.18.0"
59
48
  },
60
49
  "dependencies": {
61
- "@eggjs/core": "^6.4.0",
62
- "@eggjs/egg-module-common": "^4.0.0-beta.1",
63
- "@eggjs/tegg": "^4.0.0-beta.1",
64
- "@eggjs/tegg-common-util": "^4.0.0-beta.1",
65
- "@eggjs/tegg-lifecycle": "^4.0.0-beta.1",
66
- "@eggjs/tegg-loader": "^4.0.0-beta.1",
67
- "@eggjs/tegg-metadata": "^4.0.0-beta.1",
68
- "@eggjs/tegg-runtime": "^4.0.0-beta.1",
69
- "@eggjs/tegg-schedule-decorator": "^4.0.0-beta.1"
50
+ "@eggjs/egg-module-common": "4.0.0-beta.11",
51
+ "@eggjs/tegg": "4.0.0-beta.11",
52
+ "@eggjs/tegg-lifecycle": "4.0.0-beta.11",
53
+ "@eggjs/tegg-loader": "4.0.0-beta.11",
54
+ "@eggjs/tegg-runtime": "4.0.0-beta.11",
55
+ "@eggjs/tegg-schedule-decorator": "4.0.0-beta.11",
56
+ "@eggjs/tegg-metadata": "4.0.0-beta.11"
57
+ },
58
+ "peerDependencies": {
59
+ "egg": "beta",
60
+ "@eggjs/tegg-plugin": "4.0.0-beta.11"
70
61
  },
71
62
  "devDependencies": {
72
- "@eggjs/mock": "6",
73
- "@eggjs/module-test-util": "^4.0.0-beta.1",
74
- "@eggjs/tegg-config": "^4.0.0-beta.1",
75
- "@eggjs/tegg-plugin": "^4.0.0-beta.1",
76
- "@types/mocha": "10",
77
- "@types/node": "22",
78
- "egg": "4",
79
- "ts-node": "10",
80
- "typescript": "5"
63
+ "@eggjs/bin": "beta",
64
+ "@eggjs/mock": "beta",
65
+ "@types/mocha": "^10.0.10",
66
+ "@types/node": "^22.10.5",
67
+ "mocha": "^11.0.1",
68
+ "egg": "beta",
69
+ "typescript": "^5.9.3",
70
+ "tsdown": "^0.15.6",
71
+ "unplugin-unused": "^0.5.3",
72
+ "@eggjs/module-test-util": "4.0.0-beta.4",
73
+ "@eggjs/tegg-common-util": "4.0.0-beta.11",
74
+ "@eggjs/tegg-config": "4.0.0-beta.11",
75
+ "@eggjs/tegg-plugin": "4.0.0-beta.11"
81
76
  },
82
77
  "publishConfig": {
83
78
  "access": "public"
84
79
  },
85
- "gitHead": "79a22905272d6de7fe06152231dff65d213d9166"
86
- }
80
+ "main": "./dist/index.js",
81
+ "module": "./dist/index.js",
82
+ "types": "./dist/index.d.ts",
83
+ "scripts": {
84
+ "test:mocha": "NODE_DEBUG=egg/schedule*,tegg/plugin/schedule* egg-bin test",
85
+ "cov:mocha": "egg-bin cov",
86
+ "clean": "rimraf dist",
87
+ "build": "tsdown && rimraf dist *.tsbuildinfo && tsc -p tsconfig.build.json",
88
+ "typecheck": "tsc --noEmit"
89
+ }
90
+ }
package/agent.js DELETED
@@ -1,29 +0,0 @@
1
- import { LoaderFactory } from '@eggjs/tegg-loader';
2
- import { EggLoadUnitType } from '@eggjs/tegg-metadata';
3
- import { ScheduleInfoUtil, ScheduleMetaBuilder } from '@eggjs/tegg/schedule';
4
- import { ScheduleSubscriberRegister } from './lib/ScheduleSubscriberRegister.js';
5
- export default class ScheduleAppBootHook {
6
- agent;
7
- scheduleSubscriberRegister;
8
- constructor(agent) {
9
- this.agent = agent;
10
- this.scheduleSubscriberRegister = new ScheduleSubscriberRegister(this.agent);
11
- }
12
- async didLoad() {
13
- // FIXME: tegg use lots singleton, in mm.app test case, agent/app in one process
14
- // if use start tegg in agent, the app will use the same singleton
15
- // so we should refactor tegg to not use singleton.
16
- for (const moduleConfig of this.agent.moduleReferences) {
17
- const loader = LoaderFactory.createLoader(moduleConfig.path, EggLoadUnitType.MODULE);
18
- const clazzList = await loader.load();
19
- for (const clazz of clazzList) {
20
- if (ScheduleInfoUtil.isSchedule(clazz)) {
21
- const builder = new ScheduleMetaBuilder(clazz);
22
- const metadata = builder.build();
23
- this.scheduleSubscriberRegister.register(clazz, metadata);
24
- }
25
- }
26
- }
27
- }
28
- }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWpGLE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW1CO0lBQ3JCLEtBQUssQ0FBUTtJQUNiLDBCQUEwQixDQUE2QjtJQUV4RSxZQUFZLEtBQVk7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLGdGQUFnRjtRQUNoRixrRUFBa0U7UUFDbEUsbURBQW1EO1FBQ25ELEtBQUssTUFBTSxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckYsTUFBTSxTQUFTLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEMsS0FBSyxNQUFNLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDL0MsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDNUQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
package/app.js DELETED
@@ -1,24 +0,0 @@
1
- import { ScheduleWorkerRegister } from './lib/ScheduleWorkerRegister.js';
2
- import { ScheduleWorkerLoadUnitHook } from './lib/ScheduleWorkerLoadUnitHook.js';
3
- import { SchedulePrototypeHook } from './lib/SchedulePrototypeHook.js';
4
- export default class ScheduleAppBootHook {
5
- app;
6
- scheduleWorkerRegister;
7
- scheduleWorkerLoadUnitHook;
8
- schedulePrototypeHook;
9
- constructor(app) {
10
- this.app = app;
11
- this.scheduleWorkerRegister = new ScheduleWorkerRegister(this.app);
12
- this.scheduleWorkerLoadUnitHook = new ScheduleWorkerLoadUnitHook(this.scheduleWorkerRegister);
13
- this.schedulePrototypeHook = new SchedulePrototypeHook();
14
- }
15
- configWillLoad() {
16
- this.app.loadUnitLifecycleUtil.registerLifecycle(this.scheduleWorkerLoadUnitHook);
17
- this.app.eggPrototypeLifecycleUtil.registerLifecycle(this.schedulePrototypeHook);
18
- }
19
- async beforeClose() {
20
- this.app.loadUnitLifecycleUtil.deleteLifecycle(this.scheduleWorkerLoadUnitHook);
21
- this.app.eggPrototypeLifecycleUtil.deleteLifecycle(this.schedulePrototypeHook);
22
- }
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXZFLE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW1CO0lBQ3JCLEdBQUcsQ0FBYztJQUNqQixzQkFBc0IsQ0FBeUI7SUFDL0MsMEJBQTBCLENBQTZCO0lBQ3ZELHFCQUFxQixDQUF3QjtJQUU5RCxZQUFZLEdBQWdCO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDakYsQ0FBQztDQUNGIn0=
@@ -1,15 +0,0 @@
1
- import { ROOT_PROTO } from '@eggjs/egg-module-common';
2
- import { EggContainerFactory } from '@eggjs/tegg-runtime';
3
- export function eggScheduleAdapterFactory(proto, metaData) {
4
- return async function (ctx, data) {
5
- ctx[ROOT_PROTO] = proto;
6
- await ctx.beginModuleScope(async () => {
7
- if (metaData.disable)
8
- return;
9
- const eggObject = await EggContainerFactory.getOrCreateEggObject(proto, proto.name);
10
- const subscriber = eggObject.obj;
11
- await subscriber.subscribe(data);
12
- });
13
- };
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnU2NoZWR1bGVBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRWdnU2NoZWR1bGVBZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUkxRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsS0FBbUIsRUFBRSxRQUFrQztJQUMvRixPQUFPLEtBQUssV0FBVSxHQUFZLEVBQUUsSUFBUztRQUMxQyxHQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BDLElBQUksUUFBUSxDQUFDLE9BQU87Z0JBQUUsT0FBTztZQUM3QixNQUFNLFNBQVMsR0FBRyxNQUFNLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEYsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLEdBQXlCLENBQUM7WUFDdkQsTUFBTSxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,12 +0,0 @@
1
- export class EggScheduleMetadataConvertor {
2
- static convertToEggSchedule(metadata) {
3
- return {
4
- ...metadata.scheduleData,
5
- type: metadata.type,
6
- env: metadata.env,
7
- disable: metadata.disable,
8
- immediate: metadata.immediate,
9
- };
10
- }
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnU2NoZWR1bGVNZXRhZGF0YUNvbnZlcnRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ1NjaGVkdWxlTWV0YWRhdGFDb252ZXJ0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxNQUFNLENBQUMsb0JBQW9CLENBQUMsUUFBa0M7UUFDNUQsT0FBTztZQUNMLEdBQUcsUUFBUSxDQUFDLFlBQVk7WUFDeEIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJO1lBQ25CLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRztZQUNqQixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87WUFDekIsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO1NBQzlCLENBQUM7SUFDSixDQUFDO0NBQ0YifQ==
@@ -1,14 +0,0 @@
1
- import { ScheduleInfoUtil, ScheduleMetadataUtil, ScheduleMetaBuilder } from '@eggjs/tegg-schedule-decorator';
2
- export class SchedulePrototypeHook {
3
- async postCreate(ctx) {
4
- if (!ScheduleInfoUtil.isSchedule(ctx.clazz)) {
5
- return;
6
- }
7
- const builder = new ScheduleMetaBuilder(ctx.clazz);
8
- const metadata = builder.build();
9
- if (metadata) {
10
- ScheduleMetadataUtil.setScheduleMetadata(ctx.clazz, metadata);
11
- }
12
- }
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVQcm90b3R5cGVIb29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiU2NoZWR1bGVQcm90b3R5cGVIb29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdHLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFpQztRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
@@ -1,21 +0,0 @@
1
- import { PrototypeUtil } from '@eggjs/tegg';
2
- import { EggScheduleMetadataConvertor } from './EggScheduleMetadataConvertor.js';
3
- export class ScheduleSubscriberRegister {
4
- agent;
5
- constructor(agent) {
6
- this.agent = agent;
7
- }
8
- register(clazz, metadata) {
9
- // bind subscriber
10
- const schedule = EggScheduleMetadataConvertor.convertToEggSchedule(metadata);
11
- const path = PrototypeUtil.getFilePath(clazz);
12
- if (!metadata.disable) {
13
- this.agent.logger.info('[@eggjs/tegg-schedule-plugin]: register schedule %s', path);
14
- }
15
- this.agent.schedule.registerSchedule({
16
- schedule,
17
- key: path,
18
- });
19
- }
20
- }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVTdWJzY3JpYmVyUmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJTY2hlZHVsZVN1YnNjcmliZXJSZWdpc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFxQixNQUFNLGFBQWEsQ0FBQztBQUUvRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVqRixNQUFNLE9BQU8sMEJBQTBCO0lBQ3BCLEtBQUssQ0FBYztJQUVwQyxZQUFZLEtBQWtCO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBZ0MsRUFBRSxRQUFrQztRQUMzRSxrQkFBa0I7UUFDbEIsTUFBTSxRQUFRLEdBQUcsNEJBQTRCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0UsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxREFBcUQsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBQ0EsSUFBSSxDQUFDLEtBQWEsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7WUFDNUMsUUFBUTtZQUNSLEdBQUcsRUFBRSxJQUFJO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=
@@ -1,21 +0,0 @@
1
- import { IS_SCHEDULE, SCHEDULE_METADATA } from '@eggjs/tegg-schedule-decorator';
2
- export class ScheduleWorkerLoadUnitHook {
3
- scheduleWorkerRegister;
4
- constructor(scheduleWorkerRegister) {
5
- this.scheduleWorkerRegister = scheduleWorkerRegister;
6
- }
7
- async postCreate(_, obj) {
8
- const iterator = obj.iterateEggPrototype();
9
- for (const proto of iterator) {
10
- if (!proto.getMetaData(IS_SCHEDULE)) {
11
- continue;
12
- }
13
- const metadata = proto.getMetaData(SCHEDULE_METADATA);
14
- if (!metadata) {
15
- continue;
16
- }
17
- this.scheduleWorkerRegister.register(proto, metadata);
18
- }
19
- }
20
- }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVXb3JrZXJMb2FkVW5pdEhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJTY2hlZHVsZVdvcmtlckxvYWRVbml0SG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLGdDQUFnQyxDQUFDO0FBSWxHLE1BQU0sT0FBTywwQkFBMEI7SUFDcEIsc0JBQXNCLENBQXlCO0lBRWhFLFlBQVksc0JBQThDO1FBQ3hELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztJQUN2RCxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUEyQixFQUFFLEdBQWE7UUFDekQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0MsS0FBSyxNQUFNLEtBQUssSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxTQUFTO1lBQ1gsQ0FBQztZQUNELE1BQU0sUUFBUSxHQUF5QyxLQUFLLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDNUYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNkLFNBQVM7WUFDWCxDQUFDO1lBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7Q0FDRiJ9
@@ -1,20 +0,0 @@
1
- import { PrototypeUtil } from '@eggjs/tegg';
2
- import { eggScheduleAdapterFactory } from './EggScheduleAdapter.js';
3
- import { EggScheduleMetadataConvertor } from './EggScheduleMetadataConvertor.js';
4
- export class ScheduleWorkerRegister {
5
- app;
6
- constructor(app) {
7
- this.app = app;
8
- }
9
- register(proto, metadata) {
10
- const task = eggScheduleAdapterFactory(proto, metadata);
11
- const schedule = EggScheduleMetadataConvertor.convertToEggSchedule(metadata);
12
- const path = proto.getMetaData(PrototypeUtil.FILE_PATH);
13
- this.app.scheduleWorker.registerSchedule({
14
- schedule,
15
- task,
16
- key: path,
17
- });
18
- }
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVXb3JrZXJSZWdpc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlNjaGVkdWxlV29ya2VyUmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc1QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVqRixNQUFNLE9BQU8sc0JBQXNCO0lBQ2hCLEdBQUcsQ0FBYztJQUVsQyxZQUFZLEdBQWdCO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBbUIsRUFBRSxRQUFrQztRQUM5RCxNQUFNLElBQUksR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEQsTUFBTSxRQUFRLEdBQUcsNEJBQTRCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0UsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLEdBQVcsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7WUFDaEQsUUFBUTtZQUNSLElBQUk7WUFDSixHQUFHLEVBQUUsSUFBSTtTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiJ9
File without changes