airship-phaser-deploy/scripts/materialize-controller-assets.mjs

20 lines
853 B
JavaScript

import { mkdir, writeFile } from 'node:fs/promises';
import topHudData from '../src/assets/controller/top-hud.js';
import helmData from '../src/assets/controller/helm-action.js';
import cannonBase64 from '../src/assets/controller/cannon-roundel.js';
const outDir = new URL('../public/assets/controller/', import.meta.url);
await mkdir(outDir, { recursive: true });
const writeDataUrl = async (name, dataUrl) => {
const match = /^data:[^;]+;base64,(.+)$/.exec(dataUrl);
if (!match) throw new Error(`Invalid data URL for ${name}`);
await writeFile(new URL(name, outDir), Buffer.from(match[1], 'base64'));
};
await writeDataUrl('top-hud.webp', topHudData);
await writeDataUrl('helm-sheet.webp', helmData);
await writeFile(new URL('cannon-roundel.jpg', outDir), Buffer.from(cannonBase64, 'base64'));
console.log('Materialized controller assets');