import { createCanvas, loadImage } from "@napi-rs/canvas"; import { mkdir } from "node:fs/promises"; // Package the approved master at exact platform sizes; do not regenerate the artwork. const master = await loadImage("docs/design/mina-habits-icon.png"); await mkdir("src/pwa/public", { recursive: true }); for (const [name, size, scale] of [ ["icon-192", 192, 1], ["icon-512", 512, 1], ["icon-maskable-512", 512, 0.7], ] as const) { const canvas = createCanvas(size, size); const ctx = canvas.getContext("2d"); ctx.fillStyle = "#000000"; ctx.fillRect(0, 0, size, size); const inset = size * (1 - scale) / 2; ctx.drawImage(master, inset, inset, size * scale, size * scale); await Bun.write(`src/pwa/public/${name}.png`, canvas.toBuffer("image/png")); }