34 lines
785 B
JavaScript
34 lines
785 B
JavaScript
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.')
|