SOURCE / PINNED RELEASE
Made of little things.
Outbreak: Soycoon City
- Release
- db7750b1d009…
- Author-recorded commit
- 3ee3f5fd27a6…
- License
- LICENSE
- Author’s source reference
- nostr://npub182jczunncwe0jn6frpqwq3e0qjws7yqqnc3auccqv9nte2dnd63scjm4rf/wss%3A%2F%2Fgit.napplet.soy%2F/n-b87c04571a9
Archive hash verified: dbebdc772b142a1c…. The source-to-build association is the author’s claim; it has not been independently rebuilt.
import { createRequire } from 'node:module';
import { mkdtemp, writeFile, rm } from 'node:fs/promises';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
import { pathToFileURL } from 'node:url';
// Reuse Vite's installed compiler; keep production modules in the native Node realm.
const require = createRequire(createRequire(import.meta.url).resolve('vite/package.json'));
export async function testModules() {
const { build } = require('esbuild');
const result = await build({ stdin:{ contents:`
export * from './src/world.ts';
export * from './src/game.ts';
export * from './src/audio.ts';
export * from './src/controller.ts';
export * from './src/level-format.ts';
export * from './src/level-files.ts';
export * from './docs/examples/app-data.ts';
export * from './docs/examples/app-data-contract.ts';
`, resolveDir:process.cwd(), loader:'ts' }, bundle:true, platform:'node', format:'esm', write:false });
const directory = await mkdtemp(join(tmpdir(),'soyindent-tests-'));
try { const file = join(directory,'modules.mjs');await writeFile(file,result.outputFiles[0].text);return await import(pathToFileURL(file).href); }
finally { await rm(directory,{recursive:true,force:true}); }
}
