Nickel Plated Moose

    dark-sky-skeleton

    0.1.46 • Public • Published

    dark-sky-skeleton

    Based on Elias Hussary's dark-sky.

    A barebones isomorphic js wrapper library for Dark Sky API (previously known as Forecast.io). See Dark Sky developer docs: https://darksky.net/dev/docs.

    For a more robust solution see dark-sky-api.

    You can use dark-sky-skeleton client-side OR server-side. Note: an example of a server side proxy used with client side dark-sky-skeleton is forthecoming...

    Install it

     npm install dark-sky-skeleton
    

    Import it

    import DarkSkySkeleton from 'dark-sky-skeleton';

    or Common JS

    const DarkSkySkeleton = require('dark-sky-skeleton');

    Initialize it

    DarkSkySkeleton(apiKey, proxy)

    • {string|bool} apiKey - your Dark Sky api key or false if using proxy
    • {string|bool} [proxy] - optional URL to proxy service or true if running server-side

    Client-side Setup

    const api = new DarkSkySkeleton('your-dark-sky-api-key');

    Proxy URL - Client-side be warned!

    The above is simple and great for testing, but your api key is exposed in every request (when running in client-side). Using a separate server-side proxy to make the actual api call to dark sky is highly suggested as this hides the api key. [ref].

    To use a proxy set your api-key to false or an empty string, and pass a URL to the proxy service as the proxy (second) param.

    const api = new DarkSkySkeleton(false, '//base-url-to-proxy/service');
    Experimental (help wanted)

    dark-sky-skeleton theoretically supports a proxy service (aka untested). A proxy service would receive a request issued by dark-sky-skeleton, attach this query to a base URI (like the following: https://api.darksky.net/forecast/your-api-key), and return a final request.

    Server Side Setup

    const api = new DarkSkySkeleton('your-dark-sky-api-key', true);

    Passing true as the proxy parameter indicates that the caller is server-side. Awesome!

    Use it

    darkSky.latitude(lat)
      .longitude(long)
      .units('us')
      .language('en')
      .time('2000-04-06T12:20:05') // moment().year(2000).format('YYYY-MM-DDTHH:mm:ss')
      .extendHourly(true)
      .get();
      .then(data => console.log(data));

    Feel free to omit setting of latitude and longitude for subsequent calls i.e.:

    darkSky.latitude(lat)
      .longitude(long)
      .get()
      .then(data => console.log(data));
     
    darkSky.get().then(data => console.log(data));

    Make use of excludes

    "Exclude some number of data blocks from the api response. This is useful for reducing latency and saving cache space (see 'Request Parameters')."

    const excludes = ['alerts', 'currently', 'daily', 'flags', 'hoURLy', 'minutely'],
      exludesBlock = excludes.filter(val => val != 'currently').join(',')
    darkSky.latitude(lat)
      .longitude(long)
      .exclude(excludesBlock)
      .get()
      .then(data => console.log(data));

    Install

    npm i dark-sky-skeleton

    DownloadsWeekly Downloads

    90

    Version

    0.1.46

    License

    ISC

    Unpacked Size

    12.4 kB

    Total Files

    9

    Last publish

    Collaborators

    • deanbot