import type { CronJob } from './schedules' const jobs = new Map() const listeners = new Set<() => void>() export function setJobs(newJobs: CronJob[]) { jobs.clear() for (const job of newJobs) { jobs.set(job.id, job) } broadcast() } export function getJob(id: string): CronJob | undefined { return jobs.get(id) } export function getAllJobs(): CronJob[] { return Array.from(jobs.values()) } export function broadcast() { listeners.forEach(cb => cb()) } export function onChange(cb: () => void): () => void { listeners.add(cb) return () => listeners.delete(cb) }