Skip to content

Mini ES wrapper for OpenWeatherMap's One Call API

License

Notifications You must be signed in to change notification settings

deanbot/mini-owm

Repository files navigation

mini-owm

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 from rain and snow directly to those properties (who starts a json property with a number?)
    • i.e. instead of current.rain['1h'] the rain value is at current.rain
  • defaulting empty rain or snow to 0 instead of omitting (0 is better than undefined)

Install

npm install mini-owm

Required Params

To make a call to OpenWeatherMap you must provide an api key, latitude, and longitude. All other configuration is optional.

Constructor parameters

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);
});

Chaining

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);
  });

Get Parameters

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);
  });

Development

  • 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.

Runtimes

Latest tested runtimes

  • node: 10.16.3
  • pnpm: 2.15.1

About

Mini ES wrapper for OpenWeatherMap's One Call API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published