33 lines
996 B
JavaScript
33 lines
996 B
JavaScript
import { consola } from 'consola';
|
|
import sharp from 'sharp';
|
|
import yargs from 'yargs';
|
|
import { hideBin } from 'yargs/helpers';
|
|
|
|
(async () => {
|
|
const argv = yargs(hideBin(process.argv))
|
|
.option('size', {
|
|
alias: 's',
|
|
describe: 'Specify the size of the logo',
|
|
type: 'number',
|
|
demandOption: true,
|
|
})
|
|
.argv;
|
|
|
|
const size = argv.size;
|
|
|
|
try {
|
|
const webpImage = './src/@dasig/images/logo.webp'
|
|
const avifImage = './src/@dasig/images/logo.avif'
|
|
const inputSrc = './src/images/logo.png'
|
|
|
|
const avifBuffer = await sharp(inputSrc).avif({ quality: 60 }).resize(size).toBuffer()
|
|
await sharp(avifBuffer).toFile(avifImage)
|
|
consola.success('Logo successfully optimized in Avif')
|
|
|
|
const webpBuffer = await sharp(inputSrc).webp({ quality: 75 }).resize(size).toBuffer()
|
|
await sharp(webpBuffer).toFile(webpImage)
|
|
consola.success('Logo successfully optimized in Webp')
|
|
} catch (error) {
|
|
consola.error('Error generating favicon:', error)
|
|
}
|
|
})()
|