Files
giampy-dogservice/src/lib/server/storage.ts
T
2026-04-20 12:48:58 +02:00

30 lines
850 B
TypeScript

import { readFileSync, writeFileSync, existsSync, mkdirSync, renameSync } from 'node:fs';
import { dirname, join } from 'node:path';
const DATA_DIR = join(process.cwd(), 'data');
if (!existsSync(DATA_DIR)) mkdirSync(DATA_DIR, { recursive: true });
export function dataPath(name: string): string {
return join(DATA_DIR, name);
}
export function readJson<T>(name: string, fallback: T): T {
const p = dataPath(name);
if (!existsSync(p)) return fallback;
try {
return JSON.parse(readFileSync(p, 'utf8')) as T;
} catch {
return fallback;
}
}
export function writeJson<T>(name: string, value: T): void {
const p = dataPath(name);
const dir = dirname(p);
if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
const tmp = `${p}.tmp`;
writeFileSync(tmp, JSON.stringify(value, null, 2), 'utf8');
renameSync(tmp, p);
}