import fs from "node:fs"; import path from "node:path"; import AdmZip from "adm-zip"; const root = process.cwd(); const dataDir = path.join(root, "static", "data"); const publicDataDir = path.join(root, "public", "data"); const zipFiles = fs.readdirSync(dataDir, { withFileTypes: true }) .filter((entry) => entry.isFile() && entry.name.endsWith(".zip")) .map((entry) => path.join(dataDir, entry.name)) .sort((a, b) => fs.statSync(b).mtimeMs - fs.statSync(a).mtimeMs); const latestZip = zipFiles.at(0); if (!latestZip) { throw new Error("No zip data to load in static/data"); } fs.rmSync(path.join(publicDataDir, "pictures"), { recursive: true, force: true }); fs.rmSync(path.join(publicDataDir, "data.json"), { force: true }); const zip = new AdmZip(latestZip); zip.extractAllTo(publicDataDir); console.info(`Prepared data from: ${latestZip}`);