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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md 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';
1
+ import { Context } from 'egg';
2
+ import { type EggPrototype } from '@eggjs/tegg-metadata';
3
3
  import { 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,18 @@
1
+ import { Context } from 'egg';
2
+ import {} from '@eggjs/tegg-metadata';
3
+ import { ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
4
+ import { ROOT_PROTO } from '@eggjs/egg-module-common';
5
+ import { EggContainerFactory } from '@eggjs/tegg-runtime';
6
+ export function eggScheduleAdapterFactory(proto, metaData) {
7
+ return async function (ctx, data) {
8
+ ctx[ROOT_PROTO] = proto;
9
+ await ctx.beginModuleScope(async () => {
10
+ if (metaData.disable)
11
+ return;
12
+ const eggObject = await EggContainerFactory.getOrCreateEggObject(proto, proto.name);
13
+ const subscriber = eggObject.obj;
14
+ await subscriber.subscribe(data);
15
+ });
16
+ };
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnU2NoZWR1bGVBZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9FZ2dTY2hlZHVsZUFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQUssQ0FBQztBQUM5QixPQUFPLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUEyQixNQUFNLGdDQUFnQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUkxRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsS0FBbUIsRUFBRSxRQUFrQztJQUMvRixPQUFPLEtBQUssV0FBVSxHQUFZLEVBQUUsSUFBUztRQUMxQyxHQUFXLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BDLElBQUksUUFBUSxDQUFDLE9BQU87Z0JBQUUsT0FBTztZQUM3QixNQUFNLFNBQVMsR0FBRyxNQUFNLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEYsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLEdBQXlCLENBQUM7WUFDdkQsTUFBTSxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -0,0 +1,13 @@
1
+ import { ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
2
+ export class EggScheduleMetadataConvertor {
3
+ static convertToEggSchedule(metadata) {
4
+ return {
5
+ ...metadata.scheduleData,
6
+ type: metadata.type,
7
+ env: metadata.env,
8
+ disable: metadata.disable,
9
+ immediate: metadata.immediate,
10
+ };
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnU2NoZWR1bGVNZXRhZGF0YUNvbnZlcnRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvRWdnU2NoZWR1bGVNZXRhZGF0YUNvbnZlcnRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxRQUFrQztRQUM1RCxPQUFPO1lBQ0wsR0FBRyxRQUFRLENBQUMsWUFBWTtZQUN4QixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7WUFDbkIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO1lBQ2pCLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVM7U0FDOUIsQ0FBQztJQUNKLENBQUM7Q0FDRiJ9
@@ -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 EggApplicationCore } 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: EggApplicationCore);
7
7
  register(clazz: EggProtoImplClass<object>, metadata: ScheduleMetadata<object>): void;
8
8
  }
@@ -0,0 +1,23 @@
1
+ import {} from 'egg';
2
+ import { PrototypeUtil } from '@eggjs/tegg';
3
+ import { ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
4
+ import { EggScheduleMetadataConvertor } from "./EggScheduleMetadataConvertor.js";
5
+ export class ScheduleSubscriberRegister {
6
+ agent;
7
+ constructor(agent) {
8
+ this.agent = agent;
9
+ }
10
+ register(clazz, metadata) {
11
+ // bind subscriber
12
+ const schedule = EggScheduleMetadataConvertor.convertToEggSchedule(metadata);
13
+ const path = PrototypeUtil.getFilePath(clazz);
14
+ if (!metadata.disable) {
15
+ this.agent.logger.info('[@eggjs/tegg-schedule-plugin]: register schedule %s', path);
16
+ }
17
+ this.agent.schedule.registerSchedule({
18
+ schedule,
19
+ key: path,
20
+ });
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVTdWJzY3JpYmVyUmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1NjaGVkdWxlU3Vic2NyaWJlclJlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMkIsTUFBTSxLQUFLLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBMEIsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFbEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakYsTUFBTSxPQUFPLDBCQUEwQjtJQUNwQixLQUFLLENBQXFCO0lBRTNDLFlBQVksS0FBeUI7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFnQyxFQUFFLFFBQWtDO1FBQzNFLGtCQUFrQjtRQUNsQixNQUFNLFFBQVEsR0FBRyw0QkFBNEIsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFEQUFxRCxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDQSxJQUFJLENBQUMsS0FBYSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztZQUM1QyxRQUFRO1lBQ1IsR0FBRyxFQUFFLElBQUk7U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
@@ -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, type LoadUnitLifecycleContext } from '@eggjs/tegg-metadata';
3
+ import { 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,24 @@
1
+ import {} from '@eggjs/tegg';
2
+ import { IS_SCHEDULE, SCHEDULE_METADATA, ScheduleMetadata } from '@eggjs/tegg-schedule-decorator';
3
+ import {} from '@eggjs/tegg-metadata';
4
+ import { ScheduleWorkerRegister } from "./ScheduleWorkerRegister.js";
5
+ export class ScheduleWorkerLoadUnitHook {
6
+ scheduleWorkerRegister;
7
+ constructor(scheduleWorkerRegister) {
8
+ this.scheduleWorkerRegister = scheduleWorkerRegister;
9
+ }
10
+ async postCreate(_, obj) {
11
+ const iterator = obj.iterateEggPrototype();
12
+ for (const proto of iterator) {
13
+ if (!proto.getMetaData(IS_SCHEDULE)) {
14
+ continue;
15
+ }
16
+ const metadata = proto.getMetaData(SCHEDULE_METADATA);
17
+ if (!metadata) {
18
+ continue;
19
+ }
20
+ this.scheduleWorkerRegister.register(proto, metadata);
21
+ }
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVXb3JrZXJMb2FkVW5pdEhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1NjaGVkdWxlV29ya2VyTG9hZFVuaXRIb29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xHLE9BQU8sRUFBZ0QsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRSxNQUFNLE9BQU8sMEJBQTBCO0lBQ3BCLHNCQUFzQixDQUF5QjtJQUVoRSxZQUFZLHNCQUE4QztRQUN4RCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBMkIsRUFBRSxHQUFhO1FBQ3pELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLEtBQUssTUFBTSxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsU0FBUztZQUNYLENBQUM7WUFDRCxNQUFNLFFBQVEsR0FBeUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzVGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDZCxTQUFTO1lBQ1gsQ0FBQztZQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
@@ -1,5 +1,5 @@
1
- import { EggCore as Application } from '@eggjs/core';
2
- import { EggPrototype } from '@eggjs/tegg-metadata';
1
+ import { 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,24 @@
1
+ import { Application } from 'egg';
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
+ export class ScheduleWorkerRegister {
8
+ app;
9
+ constructor(app) {
10
+ this.app = app;
11
+ }
12
+ register(proto, metadata) {
13
+ const task = eggScheduleAdapterFactory(proto, metadata);
14
+ const schedule = EggScheduleMetadataConvertor.convertToEggSchedule(metadata);
15
+ const path = proto.getMetaData(PrototypeUtil.FILE_PATH);
16
+ // @ts-expect-error app scheduleWorker is not typed
17
+ this.app.scheduleWorker.registerSchedule({
18
+ schedule,
19
+ task,
20
+ key: path,
21
+ });
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVXb3JrZXJSZWdpc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvU2NoZWR1bGVXb3JrZXJSZWdpc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWpGLE1BQU0sT0FBTyxzQkFBc0I7SUFDaEIsR0FBRyxDQUFjO0lBRWxDLFlBQVksR0FBZ0I7UUFDMUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFtQixFQUFFLFFBQWtDO1FBQzlELE1BQU0sSUFBSSxHQUFHLHlCQUF5QixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxNQUFNLFFBQVEsR0FBRyw0QkFBNEIsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxtREFBbUQ7UUFDbkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7WUFDdkMsUUFBUTtZQUNSLElBQUk7WUFDSixHQUFHLEVBQUUsSUFBSTtTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiJ9
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.10",
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.10",
51
+ "@eggjs/tegg": "4.0.0-beta.10",
52
+ "@eggjs/tegg-lifecycle": "4.0.0-beta.10",
53
+ "@eggjs/tegg-metadata": "4.0.0-beta.10",
54
+ "@eggjs/tegg-loader": "4.0.0-beta.10",
55
+ "@eggjs/tegg-runtime": "4.0.0-beta.10",
56
+ "@eggjs/tegg-schedule-decorator": "4.0.0-beta.10"
57
+ },
58
+ "peerDependencies": {
59
+ "egg": "beta",
60
+ "@eggjs/tegg-plugin": "4.0.0-beta.10"
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/tegg-common-util": "4.0.0-beta.10",
73
+ "@eggjs/tegg-config": "4.0.0-beta.10",
74
+ "@eggjs/tegg-plugin": "4.0.0-beta.10",
75
+ "@eggjs/module-test-util": "4.0.0-beta.4"
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": "egg-bin test",
85
+ "cov:mocha": "egg-bin cov",
86
+ "clean": "rimraf dist",
87
+ "build": "tsdown && rimraf dist && tsc -b --clean && tsc",
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