import sharp from 'sharp' import { readFileSync } from 'fs' const svg = readFileSync('public/favicon.svg') const sizes = [192, 512] for (const size of sizes) { await sharp(svg) .resize(size, size) .png() .toFile(`public/pwa-${size}x${size}.png`) console.log(`Generated pwa-${size}x${size}.png`) } const maskablePad = 0.2 for (const size of sizes) { const padPx = Math.round(size * maskablePad) await sharp(svg) .resize(size - padPx * 2, size - padPx * 2) .extend({ top: padPx, bottom: padPx, left: padPx, right: padPx, background: { r: 10, g: 10, b: 10, alpha: 1 }, }) .png() .toFile(`public/pwa-${size}x${size}-maskable.png`) console.log(`Generated pwa-${size}x${size}-maskable.png`) } console.log('Done.')