Socket
Socket
Sign inDemoInstall

dark-sky-skeleton

Package Overview
Dependencies
11
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

dark-sky-skeleton

barebones dark sky weather api - for client or server-side js


Version published
Maintainers
1
Weekly downloads
50
decreased by-52.38%

Weekly downloads

Readme

Source

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

Keywords

FAQs

Last updated on 03 Aug 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc