Spaces:
Paused
Paused
| import type { CronJobCreate, CronJobPatch } from "./types.js"; | |
| import * as ops from "./service/ops.js"; | |
| import { type CronServiceDeps, createCronServiceState } from "./service/state.js"; | |
| export type { CronEvent, CronServiceDeps } from "./service/state.js"; | |
| export class CronService { | |
| private readonly state; | |
| constructor(deps: CronServiceDeps) { | |
| this.state = createCronServiceState(deps); | |
| } | |
| async start() { | |
| await ops.start(this.state); | |
| } | |
| stop() { | |
| ops.stop(this.state); | |
| } | |
| async status() { | |
| return await ops.status(this.state); | |
| } | |
| async list(opts?: { includeDisabled?: boolean }) { | |
| return await ops.list(this.state, opts); | |
| } | |
| async add(input: CronJobCreate) { | |
| return await ops.add(this.state, input); | |
| } | |
| async update(id: string, patch: CronJobPatch) { | |
| return await ops.update(this.state, id, patch); | |
| } | |
| async remove(id: string) { | |
| return await ops.remove(this.state, id); | |
| } | |
| async run(id: string, mode?: "due" | "force") { | |
| return await ops.run(this.state, id, mode); | |
| } | |
| wake(opts: { mode: "now" | "next-heartbeat"; text: string }) { | |
| return ops.wakeNow(this.state, opts); | |
| } | |
| } | |