UNPKG

wettr

Version:

🌦 Easy way to check Weather via the command line.

42 lines (39 loc) • 2.25 kB
const { default: axios } = require("axios"); const moment = require("moment"); const getWeather = (city) => new Promise((resolve, reject) => { axios .get(`https://wettr.vercel.app/api/weather/${city}`) .then((response) => { const responseData = response.data; resolve({ icon: responseData.weather[0].icon, main: { Weather: responseData.weather[0].description, Tempreture: `${(responseData.main.temp - 273.15).toFixed(2)}°C`, // "Minimum temperature": `${(responseData.main.temp_max - 273.15).toFixed(2)}°C`, // "Maximum temperature": `${(responseData.main.temp_min - 273.15).toFixed(2)}°C`, Humidity: `${responseData.main.humidity}%`, Visibility: `${responseData.visibility}m`, Pressure: `${responseData.main.pressure} hPa`, "Wind Speed": `${responseData.wind.speed}m/s`, "Wind Direction": responseData.wind?.deg ? `${responseData.wind.deg}deg` : undefined, "Wind Gust": responseData.wind?.gust ? `${responseData.wind.gust}m/s` : undefined, Cloudiness: responseData.clouds?.all ? `${responseData.clouds.all}%` : "No", Precipitation: responseData?.pop ? `${Math.floor(responseData.pop * 100)}%` : "No", Rain: responseData.rain?.["3h"] ? `${responseData.rain["3h"]}mm` : "No", Snow: responseData.snow?.["3h"] ? `${responseData.snow["3h"]}mm` : "No", Sunrise: moment.unix(responseData.sys.sunrise).format("h:mm:ss A"), Sunset: moment.unix(responseData.sys.sunset).format("h:mm:ss A"), TimeZone: responseData.timezone, City: responseData.name, Latitude: responseData.coord.lat, Longitude: responseData.coord.lon, Time: moment.unix(responseData.dt).format("dddd, Do MMMM YYYY, h:mm:ss A"), }, }); }) .catch((error) => { reject(error?.response?.data); }); }); module.exports = getWeather;