Throwaway prototypes for Sausage v3. Plan and decisions: ~/research/sausage-v3/PLAN.md. Results and evidence: the spike READMEs.
13 lines
717 B
JavaScript
13 lines
717 B
JavaScript
// Execute the actual browser bundle against a small DOM implementation.
|
|
import assert from 'node:assert/strict';
|
|
import { readFileSync } from 'node:fs';
|
|
import vm from 'node:vm';
|
|
import { parseHTML } from 'linkedom';
|
|
|
|
const { window, document } = parseHTML('<html><body><div id="app"></div></body></html>');
|
|
vm.runInNewContext(readFileSync(process.argv[2], 'utf8'), { window, document, console, setTimeout });
|
|
assert.equal(document.querySelector('h1')?.textContent, 'Hello from WASI');
|
|
assert.equal(document.querySelector('p')?.textContent, 'Preact + TypeScript');
|
|
assert.equal(document.querySelectorAll('main').length, 1);
|
|
console.log(`PASS render ${process.argv[2]}: ${document.getElementById('app').innerHTML}`);
|