import { mkdtemp, rm } from 'node:fs/promises'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; const folder = await mkdtemp(join(tmpdir(), 'bhylu-node-')); import { writeFile } from 'node:fs/promises'; import { spawnSync } from 'node:child_process'; try { const file = join(folder, 'quantity.ts'); await writeFile(file, 'const quantity: number = 3; console.log(quantity * 2);\n', { flag: 'wx', }); const flags = Number(process.versions.node.split('.')[0]) < 24 ? ['--experimental-strip-types'] : []; const result = spawnSync(process.execPath, [...flags, file], { encoding: 'utf8', timeout: 5000, windowsHide: true, }); if (result.status !== 0) throw new Error(result.stderr); console.log(result.stdout.trim()); } finally { await rm(folder, { recursive: true, force: true }); }