(async () => { try { await api({measureUpload: cli.flags.upload}).forEach(result => { data = result; }); exit(); } catch (error) { console.error(error.message); process.exit(1); } })();
function exit() { if (process.stdout.isTTY) { logUpdate(`${lineBreak(2)}${spacing(4)}${speed()}`); } else { let output = `${data.downloadSpeed} ${data.downloadUnit}`; if (cli.flags.upload) { output += `\n${data.uploadSpeed} ${data.uploadUnit}`; } console.log(output); } process.exit(); }
const speedText = () => cli.flags.upload ? `${downloadColor(downloadSpeed())} ${chalk.dim('/')} ${uploadColor(uploadSpeed())}` : downloadColor(downloadSpeed())
st.on('uploadspeedprogress', speed => { if (state === 'upload' && cli.flags.json !== true) { speed *= multiplier; const upload = roundTo(speed, speed >= 10 ? 0 : 1); stats.upload = chalk.yellow(`${upload} ${chalk.dim(unit)}`); } });
async function init(args, options) { if (args.length === 0) { cli.showHelp(1); } const nonGroupedArgs = args.filter(x => !x._); // Filter grouped args args = args.filter(x => x._); if (nonGroupedArgs.length > 0) { args.push({_: nonGroupedArgs}); } const parsedArgs = parse(args, options); const items = get(parsedArgs); await generate(items, options); }
const logError = error => { if (cli.flags.json) { console.error(JSON.stringify({error})); } else { console.error(logSymbols.error, error); } }
setTimeout(() => { animation.stop(); }, cli.flags.duration);
const spacing = amount => (cli.flags.singleLine ? '' : ' '.repeat(amount))
st.on('data', data => { if (cli.flags.verbose) { stats.data = data; } render(); });
st.on('downloadspeedprogress', speed => { if (state === 'download' && cli.flags.json !== true) { speed *= multiplier; const download = roundTo(speed, speed >= 10 ? 0 : 1); stats.download = chalk.yellow(`${download} ${chalk.dim(unit)}`); } });
const lineBreak = amount => (cli.flags.singleLine ? '' : '\n'.repeat(amount))