UNPKG

weather-cli-nk_sm

Version:
62 lines (61 loc) 2.13 kB
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} `)); } }