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')); });
st.on('data', data => { if (cli.flags.verbose) { stats.data = data; } render(); });
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); }
function fetchTracking(command, flags) { return got(CORREIOS_SERVICE_URL + command, { json: true }) .then(function(response) { const { body } = response; if (body.error) { console.log(chalk.red.bold('ErroR! ' + response.body[0].erro)); } let { tracks } = body; if (flags.last) { const [first] = tracks; tracks = [first]; } tracks.forEach(function(data) { console.log(parse(data)); }); }) .catch(function(error) { if (cli.flags.verbose) { console.log(error); } console.log(chalk.red.bold('Error!')); exit(); }); }