25 lines
664 B
TypeScript
25 lines
664 B
TypeScript
import { join } from "@std/path";
|
|
|
|
export interface PollerState {
|
|
lastEventTimestamp: string | null;
|
|
}
|
|
|
|
export async function loadPollerState(dataDir: string): Promise<PollerState> {
|
|
const path = join(dataDir, "poller-state.json");
|
|
try {
|
|
const text = await Deno.readTextFile(path);
|
|
return JSON.parse(text) as PollerState;
|
|
} catch {
|
|
return { lastEventTimestamp: null };
|
|
}
|
|
}
|
|
|
|
export async function savePollerState(
|
|
dataDir: string,
|
|
state: PollerState,
|
|
): Promise<void> {
|
|
const path = join(dataDir, "poller-state.json");
|
|
await Deno.mkdir(dataDir, { recursive: true });
|
|
await Deno.writeTextFile(path, JSON.stringify(state, null, 2));
|
|
}
|