14 lines
680 B
TypeScript
14 lines
680 B
TypeScript
export type Schedule =
|
|
| { kind: 'manual' }
|
|
| { kind: 'once'; at: number }
|
|
| { kind: 'error'; error: string }
|
|
| { kind: 'times'; days: number[]; times: number[] }
|
|
| { kind: 'every'; days: number[]; everyMin: number; window: [number, number] | null }
|
|
|
|
export function parseSchedule(text: string): Schedule
|
|
export function lastSlot(s: Schedule, now?: Date): Date | null
|
|
export function nextSlot(s: Schedule, now?: Date): Date | null
|
|
export function slotsBetween(s: Schedule, from: Date, to: Date): Date[]
|
|
export function describeSchedule(s: Schedule): string
|
|
export function graceMs(s: Schedule): number
|
|
export function normalizeSchedule(text: string, now?: Date): string
|