import type { ControllerStatusPatch, ReconcileContext, ReconcileResult } from "./types.js"; export function createResultHelpers(): Pick< ReconcileContext, "settled" | "requeue" | "requeueAfter" > { return { settled: (status) => ({ kind: "settled", ...(status !== undefined ? { status } : {}), }), requeue: (status) => ({ kind: "requeue", ...(status !== undefined ? { status } : {}), }), requeueAfter: (afterMs, status) => { if (!Number.isSafeInteger(afterMs) || afterMs <= 0) { throw new Error("requeueAfter requires a positive safe integer"); } return { kind: "requeue", afterMs, ...(status !== undefined ? { status } : {}), } satisfies ReconcileResult; }, }; } export function settled( status?: ControllerStatusPatch, ): ReconcileResult { return createResultHelpers().settled(status); } export function requeue( status?: ControllerStatusPatch, ): ReconcileResult { return createResultHelpers().requeue(status); } export function requeueAfter( afterMs: number, status?: ControllerStatusPatch, ): ReconcileResult { return createResultHelpers().requeueAfter(afterMs, status); }