52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
#!/usr/bin/env node
|
|
import fs from "fs";
|
|
import path from "path";
|
|
import { fileURLToPath } from "url";
|
|
import { execSync } from "child_process";
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
// First, copy API files to root
|
|
console.log("Copying API files...");
|
|
const srcApi = path.resolve(__dirname, "api");
|
|
const destApi = path.resolve(__dirname, "..", "api");
|
|
|
|
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 {
|
|
fs.copyFileSync(srcPath, destPath);
|
|
}
|
|
}
|
|
}
|
|
|
|
copyDir(srcApi, destApi);
|
|
console.log(`✓ API files copied to ${destApi}`);
|
|
|
|
// Now transpile TypeScript files to JavaScript using esbuild
|
|
console.log("Transpiling API routes to JavaScript...");
|
|
try {
|
|
// Use esbuild to transpile all .ts files in the API directory
|
|
execSync(
|
|
`npx esbuild "${destApi}/**/*.ts" --platform=node --target=es2020 --format=esm --outdir="${destApi}" --allow-overwrite`,
|
|
{
|
|
cwd: __dirname,
|
|
stdio: "inherit",
|
|
env: { ...process.env, SKIP_TSC: "true" },
|
|
}
|
|
);
|
|
console.log("✓ API routes transpiled successfully");
|
|
} catch (error) {
|
|
console.error("Error transpiling API routes:", error.message);
|
|
// Don't exit, as TypeScript compilation might fail for other reasons
|
|
}
|