import fs from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { createRequire } from "node:module";
import { spawn } from "node:child_process";

const pkg = createRequire(import.meta.url)("../package.json");
const __dirname = path.dirname(fileURLToPath(import.meta.url));

// write .debug.env
const envContent = Object.entries(pkg.debug.env).map(([key, val]) => `${key}=${val}`);
fs.writeFileSync(path.join(__dirname, ".debug.env"), envContent.join("\n"));

// bootstrap
spawn(
  // TODO: terminate `npm run dev` when Debug exits.
  process.platform === "win32" ? "npm.cmd" : "npm",
  ["run", "dev"],
  {
    stdio: "inherit",
    env: Object.assign(process.env, { VSCODE_DEBUG: "true" }),
  },
);
