UNPKG

tinify-client

Version:

A CLI to compress your images not only intelligently but also to the EXTREME!

38 lines (37 loc) 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeBase64Command = void 0; const image_1 = require("../utils/image"); const copyBase64_1 = require("../utils/copyBase64"); const image_to_base64_1 = require("@legend80s/image-to-base64"); const constants_1 = require("../constants"); const decorated_console_1 = require("../utils/decorated-console"); const number_1 = require("../utils/number"); exports.executeBase64Command = async (options) => { const { verbose, _: rest } = options; verbose && decorated_console_1.decorated.info('output base64 with options:', options); const img = rest.find(arg => arg !== 'base64'); verbose && decorated_console_1.decorated.info('img:', img); if (img) { // const start = Date.now(); decorated_console_1.decorated.time('image to base64 costs:'); try { const size = await image_to_base64_1.getFileSize(img); if (!size) { throw new Error('invalid image, size is ' + size); } decorated_console_1.decorated.info('image size:', number_1.toReadableSize(size)); const base64 = await image_1.imageToBase64(img); copyBase64_1.copyBase64(base64, { verbose: verbose || size < 1024 }); decorated_console_1.decorated.success('base64 has been copied to your clipboard.'); decorated_console_1.decorated.timeEnd('image to base64 costs:'); console.log(); } catch (error) { decorated_console_1.decorated.error(error); } } else { decorated_console_1.decorated.warn('image required. Usage: $ ' + constants_1.BASE64_USAGE, '\n'); } };