aethex-forge/build-api.js
Builder.io abb4bbe81e Copy only handler files, exclude utilities
cgen-167a3de9d2f34d8ea8b56c9250422d37
2025-11-16 04:52:28 +00:00

46 lines
1.3 KiB
JavaScript

#!/usr/bin/env node
import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
console.log("Preparing API files for Vercel...");
const srcApi = path.resolve(__dirname, "api");
const destApi = path.resolve(__dirname, "..", "api");
// Files to exclude from API directory (utilities that shouldn't be handlers)
const excludeFiles = new Set([
"_supabase.ts",
"_cors.ts",
"_notifications.ts",
"opportunities.ts",
"applications.ts",
]);
function copyDir(src, dest) {
if (fs.existsSync(dest)) {
fs.rmSync(dest, { recursive: true, force: true });
}
fs.mkdirSync(dest, { recursive: true });
const entries = fs.readdirSync(src, { withFileTypes: true });
for (const entry of entries) {
const srcPath = path.join(src, entry.name);
const destPath = path.join(dest, entry.name);
if (entry.isDirectory()) {
copyDir(srcPath, destPath);
} else if (!entry.name.startsWith(".") && !excludeFiles.has(entry.name)) {
fs.copyFileSync(srcPath, destPath);
console.log(` Copied: ${entry.name}`);
} else if (excludeFiles.has(entry.name)) {
console.log(` Skipped (utility): ${entry.name}`);
}
}
}
console.log(`Copying API files from ${srcApi}...`);
copyDir(srcApi, destApi);
console.log(`✓ API files prepared for Vercel`);