| Name | Message | Date |
|---|---|---|
| 📄 build-assets.mjs | 10 hours ago | |
| 📄 package.mjs | 10 hours ago | |
| 📄 publish-edge.mjs | 10 hours ago |
📄
scripts/build-assets.mjs
import { cpSync, mkdirSync } from 'node:fs';
import { readFile, writeFile } from 'node:fs/promises';
import { dirname, join } from 'node:path';
import { fileURLToPath } from 'node:url';
import { Resvg } from '@resvg/resvg-js';
const root = dirname(dirname(fileURLToPath(import.meta.url)));
const dist = join(root, 'dist');
const publicDir = join(root, 'public');
// 1) Static files (the manifest).
mkdirSync(join(dist, 'icons'), { recursive: true });
cpSync(publicDir, dist, { recursive: true });
// 2) Rasterize the icon SVG into the sizes referenced by the manifest.
const svg = await readFile(join(root, 'icons', 'icon.svg'));
for (const size of [16, 32, 48, 128]) {
const png = new Resvg(svg, { fitTo: { mode: 'width', value: size } }).render().asPng();
await writeFile(join(dist, 'icons', `icon-${size}.png`), png);
}
console.log('Assets ready: manifest + icons.');