st.once('testserver', server => { if (cli.flags.verbose) { stats.data = { server: map(server) }; } setState('download'); const ping = Math.round(server.bestPing); stats.ping = cli.flags.json ? ping : chalk.cyan(ping + chalk.dim(' ms')); });
const logError = error => { if (cli.flags.json) { console.error(JSON.stringify({error})); } else { console.error(logSymbols.error, error); } }
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)}`); } });
function render() { if (cli.flags.json) { console.log(JSON.stringify(stats)); return; } let output = ` Ping ${getSpinnerFromState('ping')}${stats.ping} Download ${getSpinnerFromState('download')}${stats.download} Upload ${getSpinnerFromState('upload')}${stats.upload}`; if (cli.flags.verbose) { output += [ '', ' Server ' + (stats.data === undefined ? '' : chalk.cyan(stats.data.server.host)), ' Location ' + (stats.data === undefined ? '' : chalk.cyan(stats.data.server.location + chalk.dim(' (' + stats.data.server.country + ')'))), ' Distance ' + (stats.data === undefined ? '' : chalk.cyan(roundTo(stats.data.server.distance, 1) + chalk.dim(' km'))) ].join('\n'); } logUpdate(output); }
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)}`); } });