// Assembles client.js from client.src.js + the brand SVGs in ./icons (monochrome, currentColor). import { readFileSync, readdirSync, writeFileSync } from 'node:fs'; const dir = new URL('./icons/', import.meta.url); const icons = {}; for (const f of readdirSync(dir).filter((n) => n.endsWith('.svg')).sort()) { const svg = readFileSync(new URL(f, dir), 'utf8'); const inner = svg.replace(/^[\s\S]*?]*>/, '').replace(/<\/svg>\s*$/, '').replace(/[\s\S]*?<\/title>/, ''); icons[f.slice(0, -4)] = inner; } const src = readFileSync(new URL('./client.src.js', import.meta.url), 'utf8'); writeFileSync(new URL('./client.js', import.meta.url), src.replace('/*__ICONS__*/{}', () => JSON.stringify(icons))); console.log('icons:', Object.keys(icons).length);