import { build } from "esbuild"; import { mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { spawnSync } from "node:child_process"; const dir = await mkdtemp(join(tmpdir(), "tabularium-research-tests-")); try { const file = join(dir, "research.test.cjs"); await build({ entryPoints: ["tests/research.test.ts"], bundle: true, platform: "node", target: "node22", format: "cjs", outfile: file }); const result = spawnSync(process.execPath, ["--test", file], { stdio: "inherit" }); process.exitCode = result.status ?? 1; } finally { await rm(dir, { recursive: true, force: true }); }