tinify-client
Version:
A CLI to compress your images not only intelligently but also to the EXTREME!
38 lines (37 loc) • 1.71 kB
JavaScript
;
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');
}
};