alepha
Version:
Easy-to-use modern TypeScript framework for building many kind of applications.
45 lines (38 loc) • 1.46 kB
text/typescript
import { $module } from "alepha";
import { AlephaLock } from "alepha/lock";
import { $scheduler } from "./primitives/$scheduler.ts";
import { CronProvider } from "./providers/CronProvider.ts";
import { WorkerdCronProvider } from "./providers/WorkerdCronProvider.ts";
// ---------------------------------------------------------------------------------------------------------------------
export * from "./constants/CRON.ts";
export * from "./primitives/$scheduler.ts";
export * from "./providers/CronProvider.ts";
export * from "./providers/WorkerdCronProvider.ts";
// ---------------------------------------------------------------------------------------------------------------------
declare module "alepha" {
interface Hooks {
/**
* Cloudflare Workers scheduled event.
*
* Emitted when a cron trigger fires in Cloudflare Workers.
*/
"cloudflare:scheduled": {
cron: string;
scheduledTime: number;
};
}
}
// ---------------------------------------------------------------------------------------------------------------------
export const AlephaScheduler = $module({
name: "alepha.scheduler",
primitives: [$scheduler],
imports: [AlephaLock],
services: [CronProvider],
variants: [WorkerdCronProvider],
register: (alepha) =>
// Replace CronProvider with WorkerdCronProvider for Cloudflare Workers
alepha.with({
provide: CronProvider,
use: WorkerdCronProvider,
}),
});