chore(ops): harden deployment and runtime setup
This commit is contained in:
parent
1d7e7c41c9
commit
c35bd5877e
30 changed files with 534 additions and 61 deletions
|
|
@ -1,27 +1,25 @@
|
|||
import { mkdir, readFile, writeFile } from "fs/promises";
|
||||
import path from "path";
|
||||
import { dataDirectory } from "@/lib/runtime/config";
|
||||
import type { ContactInquiry, InquiryStatus, RepairInquiry, SiteSettings, SmtpSettings } from "./types";
|
||||
|
||||
const dataDir = path.join(process.cwd(), "data");
|
||||
|
||||
async function ensureDataDir() {
|
||||
await mkdir(dataDir, { recursive: true });
|
||||
await mkdir(dataDirectory, { recursive: true });
|
||||
}
|
||||
|
||||
async function readJson<T>(fileName: string, fallback: T): Promise<T> {
|
||||
await ensureDataDir();
|
||||
try {
|
||||
const file = await readFile(path.join(dataDir, fileName), "utf8");
|
||||
const file = await readFile(path.join(dataDirectory, fileName), "utf8");
|
||||
return JSON.parse(file) as T;
|
||||
} catch {
|
||||
await writeJson(fileName, fallback);
|
||||
return fallback;
|
||||
}
|
||||
}
|
||||
|
||||
async function writeJson<T>(fileName: string, value: T) {
|
||||
await ensureDataDir();
|
||||
await writeFile(path.join(dataDir, fileName), `${JSON.stringify(value, null, 2)}\n`, "utf8");
|
||||
await writeFile(path.join(dataDirectory, fileName), `${JSON.stringify(value, null, 2)}\n`, "utf8");
|
||||
}
|
||||
|
||||
function id(prefix: string) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue