feat: add v2 queued taps and free board rotation
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import { readFile, writeFile, cp, mkdir } from 'node:fs/promises';
|
||||
import { resolve, join } from 'node:path';
|
||||
|
||||
// Run after npm run build. Use a new asset ID for every deployment to avoid
|
||||
// mixing cached JavaScript from different versions on the static server.
|
||||
const [version, assetId, destination] = process.argv.slice(2);
|
||||
if (!/^v\d+$/.test(version || '') || !/^[a-zA-Z0-9-]+$/.test(assetId || '') || !destination) {
|
||||
throw new Error('Usage: node scripts/package-release.mjs v2 <unique-asset-id> <output-directory>');
|
||||
}
|
||||
const output = resolve(destination);
|
||||
const prefix = `/games/hextrails/${assetId}/`;
|
||||
await mkdir(output, { recursive: true });
|
||||
await cp('dist', join(output, assetId), { recursive: true, errorOnExist: true, force: false });
|
||||
const html = (await readFile('dist/index.html', 'utf8')).replace(/(href|src)="(?!#|https?:|\/)([^"]+)"/g,
|
||||
(_, attr, path) => `${attr}="${prefix}${path}"`);
|
||||
await writeFile(join(output, `${version}.html`), html);
|
||||
for (const name of ['src/sprites.js', 'src/ui-skin.js']) {
|
||||
const path = join(output, assetId, name);
|
||||
await writeFile(path, (await readFile(path, 'utf8')).replaceAll("'assets/", `'${prefix}assets/`));
|
||||
}
|
||||
console.log(`Release package: ${output}/${version}.html`);
|
||||
Reference in New Issue
Block a user