UNPKG

partywhen

Version:

A library for scheduling and running tasks in Cloudflare Workers

147 lines (145 loc) 2.81 kB
import { Server } from "partyserver"; //#region src/index.d.ts type RawTask = { id: string; description?: string | undefined; payload?: Record<string, unknown> | undefined; callback?: Callback | undefined; } & ( | { time: Date; type: "scheduled"; } | { delayInSeconds: number; type: "delayed"; } | { cron: string; type: "cron"; } | { type: "no-schedule"; } ); type Task = RawTask & { time: Date; }; type SqlTask = { id: string; description: string | null; payload: string | null; callback: string | null; created_at: number; } & ( | { type: "scheduled"; time: number; } | { type: "delayed"; time: number; delayInSeconds: number; } | { type: "cron"; time: number; cron: string; } | { type: "no-schedule"; time: number; } ); type Callback = | { type: "self"; function: string; } | { type: "webhook"; url: string; } | { type: "durable-object"; namespace: string; name: string; function: string; } | { type: "service"; service: string; function: string; }; declare class Scheduler< Env extends Cloudflare.Env = Cloudflare.Env > extends Server<Env> { constructor(state: DurableObjectState, env: Env); status(): { status: "reachable"; timestamp: number; diskUsage: any; }; fetch(_request: Request): Promise<Response>; getAllTasks(): SqlResult<SqlTask>; private scheduleNextAlarm; scheduleTask(task: RawTask): Promise<Task>; alarm(): Promise<void>; private rowToTask; private executeTask; private getNextCronTime; query(criteria?: { description?: string; id?: string; type?: "scheduled" | "delayed" | "cron" | "no-schedule"; timeRange?: { start?: Date; end?: Date; }; }): Promise<Task[]>; cancelTask(id: string): Promise<boolean>; querySql<T>(qs: SqliteQuery[], isRaw?: boolean): SqlResult<T>; private executeTransaction; executeQuery<T>( sql: string, params: SqliteParams[] | undefined, isRaw: boolean ): QueryResponse<T>; } type SqlResult<T> = | { result: T[]; error: null; status: 200; } | { result: null; error: string; status: 500 | 408; }; type RawSqliteResponse<T> = { columns: string[]; rows: T[]; meta: { rows_read: number; rows_written: number; }; }; type QueryResponse<T> = T[] | RawSqliteResponse<T>; type SqliteParams = number | string | boolean | null; type SqliteQuery = { sql?: string; params?: SqliteParams[]; }; //#endregion export { RawSqliteResponse, RawTask, Scheduler, SqlResult, SqlTask, SqliteParams, SqliteQuery, Task }; //# sourceMappingURL=index.d.ts.map