import os from "node:os"; import path from "node:path"; import { promises as fs } from "node:fs"; import { build } from "esbuild"; const outputDir = process.env.BUILD_OUT_DIR || path.join(os.tmpdir(), "oapix-build"); await fs.rm(outputDir, { force: true, recursive: true }); await fs.mkdir(outputDir, { recursive: true }); await build({ entryPoints: ["src/server.js"], outfile: path.join(outputDir, "server.js"), bundle: true, format: "esm", platform: "node", sourcemap: true, external: ["express", "dotenv", "ffmpeg-static"] }); await fs.copyFile("package.json", path.join(outputDir, "package.json")); await fs.copyFile("package-lock.json", path.join(outputDir, "package-lock.json")).catch(() => {}); await fs.copyFile(".env.example", path.join(outputDir, ".env.example")); await fs.cp("public", path.join(outputDir, "public"), { recursive: true }); console.log(outputDir);