import { spawnSync } from "node:child_process"; import { rmSync } from "node:fs"; import { dirname } from "node:path"; import { createRequire } from "node:module"; const target = process.argv[2]; if (target !== "node" && target !== "electron") { console.error("Usage: node scripts/rebuild-better-sqlite3.mjs "); process.exit(1); } if (target === "electron") { const result = spawnSync("pnpm", ["exec", "electron-rebuild", "-f", "-w", "better-sqlite3"], { stdio: "inherit", }); process.exit(result.status ?? 1); } const requireFromShared = createRequire(new URL("../packages/shared/package.json", import.meta.url)); const packageJsonPath = requireFromShared.resolve("better-sqlite3/package.json"); const packageDir = dirname(packageJsonPath); rmSync(new URL("build", `file://${packageDir}/`), { recursive: true, force: true }); const result = spawnSync("pnpm", ["run", "install"], { cwd: packageDir, stdio: "inherit", }); process.exit(result.status ?? 1);