A wrapper around Open Weather Map's One Call Api.
Configure it via initialization, chaining, individual calls, or mix and match.
mini-owm also simplifies the Open Weather Api by:
- defaulting to metric (who uses kelvin?)
- applying the nested
1h
property fromrain
andsnow
directly to those properties (who starts a json property with a number?)- i.e. instead of
current.rain['1h']
the rain value is atcurrent.rain
- i.e. instead of
- defaulting empty
rain
orsnow
to0
instead of omitting (0 is better than undefined)
npm install mini-owm
To make a call to OpenWeatherMap you must provide an api key, latitude, and longitude. All other configuration is optional.
import MiniOwm, { Units } from 'mini-owm';
// constructor parameters are all optional
const api = new MiniOwm(
'<your api key here>', // owm api key
33.441792, // latitude
-94.037689, // longitude
'hourly,minutely' // exclude
Units.Imperial, // units (default is 'metric' for mini-owm)
'de' // language
);
api.get().then(res => {
console.log(res);
});
import MiniOwm from 'mini-owm';
const api = new MiniOwm();
api
.apiKey('<your api key here>')
.latitude(33.441792)
.longitude(-94.037689)
.exclude('hourly,minutely')
.standard() // set units to standard (Kelvin)
.imperial() // set units to imperial (Fahrenheit)
.metric() // set units to metric (Celcius) - this is default for mini-owm
.language('de')
.get()
.then(res => {
console.log(res);
});
import MiniOwm, { Units } from 'mini-owm';
// get attributes properties are all optional
new MiniOwm()
.get({
apiKey: '<your api key here>',
coords: {
latitude: 33.441792,
longitude: -94.037689,
},
exclude: 'hourly,minutely',
units: Units.Metric, // or 'metric'
language: 'de'
})
.then(res => {
console.log(res);
});
- Notes:
- Written in TypeScript
- Compiled to UMD via WebPack
- Compiled to ES6 via TSC
- Typings generated by TSC
- Setup:
pnpm install
- Configure: create
.env
with contents:API_KEY=<your api key here>
- Serve:
pnpm run start
See index.ejs.
Latest tested runtimes
- node: 10.16.3
- pnpm: 2.15.1