weather-cli-nk_sm
Version:
cli for weather forecast
62 lines (61 loc) • 2.13 kB
JavaScript
import chalk from 'chalk';
import dedent from 'dedent-js';
export default class LogService {
static error(message) {
console.log(`${chalk.bgRed(' ERROR ')} ${message}`);
}
static success(message) {
console.log(`${chalk.bgGreen(' SUCCESS ')} ${message}`);
}
static help() {
console.log('\n' +
' ' +
chalk.bgCyan(' HELP ') +
'\n\n' +
' Without parameters - get weather\n\n' +
" '-h' for receiving help\n\n" +
" '-c [CITY]' for setting the city\n\n" +
" '-key [API_KEY]' for saving the api-key\n");
}
static colorTemperature(temp) {
if (+temp > 10)
return chalk.rgb(244, 164, 96)(temp);
else if (+temp < 10)
return chalk.rgb(0, 139, 139)(temp);
return chalk.rgb(220, 220, 220)(temp);
}
static getIcon(icon) {
switch (icon.slice(0, -1)) {
case '01':
return '☀️';
case '02':
return '🌤️';
case '03':
return '☁️';
case '04':
return '☁️';
case '09':
return '🌧️';
case '10':
return '🌦️';
case '11':
return '🌩️';
case '13':
return '❄️';
case '50':
return '🌫️';
default:
return '🌫️';
}
}
static showWeather({ name, weather: [{ description, icon }], wind: { speed }, main: { temp, feels_like, humidity }, }) {
temp = this.colorTemperature(temp);
feels_like = this.colorTemperature(feels_like);
console.log(dedent(`${chalk.bgYellow(' WEATHER ')} Погода в городе ${name}
${this.getIcon(icon)} ${description}
Температура: ${temp} градусов (ощущается как ${feels_like})
Влажность: ${humidity}%
Скорость ветра: ${speed}
`));
}
}