41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
|
|
// Copies WASM artifacts and loader into the public/ folder before Vite dev/build.
|
||
|
|
// Run as an npm script (predev) from this example directory.
|
||
|
|
import { cp, mkdir } from 'node:fs/promises';
|
||
|
|
import { dirname, resolve } from 'node:path';
|
||
|
|
import { fileURLToPath } from 'node:url';
|
||
|
|
|
||
|
|
const __filename = fileURLToPath(import.meta.url);
|
||
|
|
const __dirname = dirname(__filename);
|
||
|
|
|
||
|
|
async function main() {
|
||
|
|
const root = resolve(__dirname, '../../..');
|
||
|
|
const exampleDir = resolve(__dirname, '..');
|
||
|
|
const publicDir = resolve(exampleDir, 'public');
|
||
|
|
|
||
|
|
await mkdir(publicDir, { recursive: true });
|
||
|
|
|
||
|
|
const sources = [
|
||
|
|
// WASM artifacts built by `make wasm-build`
|
||
|
|
resolve(root, 'dist/poindexter.wasm'),
|
||
|
|
resolve(root, 'dist/wasm_exec.js'),
|
||
|
|
// ESM loader shipped with the repo's npm folder
|
||
|
|
resolve(root, 'npm/poindexter-wasm/loader.js'),
|
||
|
|
];
|
||
|
|
|
||
|
|
const targets = [
|
||
|
|
resolve(publicDir, 'poindexter.wasm'),
|
||
|
|
resolve(publicDir, 'wasm_exec.js'),
|
||
|
|
resolve(publicDir, 'loader.js'),
|
||
|
|
];
|
||
|
|
|
||
|
|
for (let i = 0; i < sources.length; i++) {
|
||
|
|
await cp(sources[i], targets[i]);
|
||
|
|
console.log(`Copied ${sources[i]} -> ${targets[i]}`);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
main().catch((err) => {
|
||
|
|
console.error('copy-assets failed:', err);
|
||
|
|
process.exit(1);
|
||
|
|
});
|