// Builds the pages ipx serves: each page's TypeScript from web/src, types stripped and minified // by swc into a script of its own (app.js, login.js), and the page minified, its // `); if (!minify) return { html: out, js, script }; const r = html.minifySync(out, { minifyJs: false, minifyCss: true, removeComments: true }); const bad = (r.errors || []).filter(e => e.level === 'Error'); if (bad.length) throw new Error(`${name}: ${bad.map(e => e.message).join('; ')}`); return { html: r.code, js, script }; } if (process.argv[1] === fileURLToPath(import.meta.url)) { const out = process.argv[2] || path.join(here, 'dist'); fs.mkdirSync(out, { recursive: true }); for (const name of Object.keys(PAGES)) { const { html, js, script } = buildPage(name); fs.writeFileSync(path.join(out, name), html); fs.writeFileSync(path.join(out, script), js); } }