// deno-lint-ignore-file no-explicit-any import { consola } from "consola"; import process from "node:process"; import sharp from "sharp"; import yargs from "yargs"; import { hideBin } from "yargs/helpers"; (async () => { const argv = yargs(hideBin(process.argv)) .option("name", { alias: "n", describe: "Specify the name of the image", type: "string", demandOption: true, }) .option("size", { alias: "s", describe: "Specify the size of the image", type: "number", demandOption: true, }).argv; const name = argv.name; const size = argv.size; try { const avifOutputPath = `./@dasig/images/${name.toString().split(".").slice(0, -1).join(".")}.avif`; const webpOutputPath = `./@dasig/images/${name.toString().split(".").slice(0, -1).join(".")}.webp`; const avifBuffer = await sharp(`./src/images/${name}`) .avif({ quality: 60 }) .resize(size) .toBuffer(); await sharp(avifBuffer).toFile(avifOutputPath); consola.success(`${name} successfully optimized in Avif`); const webpBuffer = await sharp(`./src/images/${name}`) .webp({ quality: 75 }) .resize(size) .toBuffer(); await sharp(webpBuffer).toFile(webpOutputPath); consola.success(`${name} successfully optimized in Webp`); } catch (error: any) { consola.error("Error optimizing image:", error); if (error.message.includes("missing")) consola.error(`${name} could not be found on image folder`); } })();