@vite-hub/schedule
v0.0.1
Published
Schedule primitives and definition discovery for ViteHub.
Readme
@vite-hub/schedule
@vite-hub/schedule keeps cron definitions and runtime schedules behind one schedule registry.
Install
pnpm add @vite-hub/scheduleAdd @vite-hub/kv when runtime schedules should persist outside memory.
Minimal API
// server/schedules/daily-report.ts
import { defineSchedule } from "@vite-hub/schedule"
export default defineSchedule({
cron: "0 8 * * *",
allowRuntimeSchedules: true,
handler: async ({ scheduledAt }) => {
console.log(`Generating daily report for ${scheduledAt.toISOString()}`)
},
})// server/api/schedules.post.ts
import { schedules } from "@vite-hub/schedule/runtime"
import { defineEventHandler } from "h3"
export default defineEventHandler(() => {
return schedules.create({
cron: "30 3 * * 1",
target: "daily-report",
})
})// nitro.config.ts
import { defineNitroConfig } from "nitro/config"
export default defineNitroConfig({
modules: ["@vite-hub/schedule/nitro"],
})Vite and Nitro
Nitro discovers server/schedules/<name>.ts; Vite supports src/<name>.schedule.ts through hubSchedule(). Static schedules can produce provider cron output, including Vercel Cron Jobs. Cron parsing uses cron-schedule.
Learn more at vitehub.dev.
