"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.run = void 0; var _chalk = _interopRequireDefault(require("chalk")); var _compress = require("./compress"); var _spinner = require("./spinner"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /*! * node-minify * Copyright(c) 2011-2019 Rodolphe Stoclin * MIT Licensed */ /** * Module dependencies. */ /** * Module variables. */ let silence = false; /** * Run one compressor. */ const runOne = cli => { return new Promise((resolve, reject) => { const compressor = typeof cli.compressor === 'string' ? require(`@node-minify/${cli.compressor}`) : cli.compressor; const options = { compressorLabel: cli.compressor, compressor, input: cli.input.split(','), output: cli.output }; if (cli.option) { options.options = JSON.parse(cli.option); } if (!silence) { (0, _spinner.spinnerStart)(options); } return (0, _compress.compress)(options).then(result => { if (!silence) { (0, _spinner.spinnerStop)(result); } resolve(result); }).catch(err => { if (!silence) { (0, _spinner.spinnerError)(options); } reject(err); }); }); }; /** * Run cli. */ const run = cli => { silence = !!cli.silence; if (!silence) { console.log(''); console.log(_chalk.default.bgBlue.black(' INFO '), 'Starting compression...'); console.log(''); } return new Promise((resolve, reject) => { runOne(cli).then(() => { if (!silence) { console.log(''); console.log(_chalk.default.bgGreen.black(' DONE '), _chalk.default.green('Done!')); console.log(''); } }).then(resolve).catch(reject); }); }; /** * Expose `run()`. */ exports.run = run;