import fs from "node:fs/promises"; import { definePlugin } from "nitro"; import { env } from "@reactive-resume/env/server"; import { getLocalDataDirectory } from "@reactive-resume/utils/monorepo.node"; export default definePlugin(async () => { if (env.S3_ACCESS_KEY_ID && env.S3_SECRET_ACCESS_KEY && env.S3_BUCKET) return; const dataDirectory = getLocalDataDirectory(env.LOCAL_STORAGE_PATH); console.info(`Validating local storage path: ${dataDirectory}`); try { await fs.mkdir(dataDirectory, { recursive: true }); await fs.access(dataDirectory, fs.constants.R_OK | fs.constants.W_OK); } catch (error) { const message = error instanceof Error ? error.message : "Unknown error"; console.error( `Local storage path is not writable: ${dataDirectory}\n` + ` ${message}\n` + "Set LOCAL_STORAGE_PATH to a writable directory or fix permissions on the existing path.", ); throw error; } });