UNPKG

obhavo-cli-uz

Version:

Ob-Havo korsatib beruvchi o'zbekcha cli

88 lines (80 loc) 2.25 kB
import { getArgs } from "./helpers/args.js"; import { getWeather, getIcon } from "./services/api.service.js"; import { printHelp, printSucces, printError, printWeather, } from "./services/log.service.js"; import { saveKeyValue, TOKEN_DICTIONARY, getKeyValue, } from "./services/storage.service.js"; // import { API_KEY } from "./key.json"; // #!usr/bin/env/ node const saveToken = async (token) => { if (!token.length) { printError("Token Berilmadi!"); return; } try { await saveKeyValue(TOKEN_DICTIONARY.token, token); printSucces("Token saqlandi!"); } catch (err) { printError(err.message); } }; const saveCity = async (city) => { if (!city.length) { printError("Shahar Berilmadi!"); return; } try { await saveKeyValue(TOKEN_DICTIONARY.city, city); printSucces("Shahar saqlandi!"); } catch (err) { printError(err.message); } }; const getForcast = async () => { try { const city = process.env.CITY ?? (await getKeyValue(TOKEN_DICTIONARY.city)); const weather = await getWeather(city); printWeather(weather, getIcon(weather.weather[0].icon)); } catch (e) { if (e?.response?.status === 404) { printError( "Shahar noto'g'ri kiritilgan! Shaharni -s [SHAHAR_NOMI] bilan kiriting" ); } else if (e?.response?.status === 401) { printError( "Token notogri kiritilgan, tokenni -t [API_TOKEN] orqali kiriting!" ); } else { printError(e.message); } } }; const initCli = () => { const args = getArgs(process.argv); // console.log(process.env); // console.log(args); if (args.s) { return saveCity(args.s); // Shaharni saqlash } if (args.h) { // Yordam yani help ni chiqarish return printHelp(); } if (args.t) { // Tokenni yangilash return saveToken(args.t); } return getForcast(); // getWeather("mosco "); // Obhavoni ekranga chiqarish }; initCli();