diff --git a/src/cron/service/run-receipts.ts b/src/cron/service/run-receipts.ts index 921598d96a86..fa9cfe34450c 100644 --- a/src/cron/service/run-receipts.ts +++ b/src/cron/service/run-receipts.ts @@ -1,4 +1,3 @@ -import type { CronStoreTransactionHooks } from "../store.js"; import { assertCronRunReceiptCurrent, assertCronRunReceiptCurrentInDatabase, @@ -9,6 +8,7 @@ import { type CronRunReceiptHandle, type CronRunReceiptStatus, } from "../store/run-receipt-store.js"; +import type { CronStoreTransactionHooks } from "../store/transaction-hooks.js"; import type { CronJob, CronRunStatus } from "../types.js"; import { resolveEffectiveJobAgentId } from "./ops-shared.js"; import type { CronServiceState } from "./state.js"; diff --git a/src/cron/service/store.ts b/src/cron/service/store.ts index 9ae05b5c4a29..9b99a99dd822 100644 --- a/src/cron/service/store.ts +++ b/src/cron/service/store.ts @@ -9,9 +9,9 @@ import { getCronJobsStoreRevision, loadCronJobsStoreWithConfigJobs, saveCronJobsStore, - type CronStoreTransactionHooks, type QuarantinedCronConfigJob, } from "../store.js"; +import type { CronStoreTransactionHooks } from "../store/transaction-hooks.js"; import type { CronJob, CronStoreFile } from "../types.js"; import { computeJobNextRunAtMs, recomputeNextRuns } from "./jobs-scheduling.js"; import { assertTimeScheduleSatisfiable } from "./jobs-validation.js"; diff --git a/src/cron/store.ts b/src/cron/store.ts index 96db2571712d..3ef9c9661d3b 100644 --- a/src/cron/store.ts +++ b/src/cron/store.ts @@ -28,6 +28,7 @@ import { repairCronRuntimeAuthorityRows, replaceCronRuntimeAuthorityRows, } from "./store/runtime-authority-store.js"; +import type { CronStoreTransactionHooks } from "./store/transaction-hooks.js"; import type { CronQuarantinedJob, LoadedCronStore, @@ -236,13 +237,6 @@ type SaveCronStoreOptions = { stateOnly?: boolean; }; -export type CronStoreTransactionHooks = { - /** Runs inside the authoritative write transaction before cron rows change. */ - beforeWrite?: (db: DatabaseSync) => void; - /** Runs after row changes but before the same transaction commits. */ - afterWrite?: (db: DatabaseSync) => void; -}; - type SaveCronJobsStoreOptions = SaveCronStoreOptions & { quarantine?: { entries: readonly (QuarantinedCronConfigJob | CronQuarantinedJob)[]; diff --git a/src/cron/store/transaction-hooks.ts b/src/cron/store/transaction-hooks.ts new file mode 100644 index 000000000000..ac426a782cba --- /dev/null +++ b/src/cron/store/transaction-hooks.ts @@ -0,0 +1,6 @@ +import type { DatabaseSync } from "node:sqlite"; + +export type CronStoreTransactionHooks = { + beforeWrite?: (db: DatabaseSync) => void; + afterWrite?: (db: DatabaseSync) => void; +};