Files
model-selector-plus/build.mjs
T

13 lines
768 B
JavaScript

// 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]*?<svg[^>]*>/, '').replace(/<\/svg>\s*$/, '').replace(/<title>[\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);