This library provides authorization handling and methods for accessing the Sunburst API from SunsetWx.
- Supports Node.js, React Native, and popular web browsers.
Platform | Version |
---|---|
Node.js | 6.5+ |
React Native | 0.54+ |
JavaScript in-browser script tag usage:
- Place
dist/sunburst.iife.js
into your website's files.
<!-- The library is exposed as a global variable: SunburstJS -->
<script src="assets/js/sunburst.iife.js"></script>
Installation using npm:
npm i sunburst.js
Node.js 8.10+ usage:
const SunburstJS = require('sunburst.js');
Node.js 6.5+ usage:
const SunburstJS = require('sunburst.js/dist/sunburst.node.js');
Usage with React Native or your favorite module bundler:
import SunburstJS from 'sunburst.js';
Create a session pair. Also known as clientId
and clientSecret
, which are our API keys:
(async () => {
try {
const sunburst = new SunburstJS();
const session = await sunburst.createSession({
email: 'example@example.com',
password: 'hunter2',
type: 'permanent',
scope: ['predictions']
});
console.log(session);
} catch (ex) {
// Handle general network or parsing errors.
return console.error(ex);
}
})();
Now you can make API requests:
let sunburst = new SunburstJS({
clientId: 'f78fe615-8eb1-48c4-be21-e5f4f437e8ba',
clientSecret: '18qwl0htsPX|[!NGQ@[qK{X;[&^EVzaH',
scope: ['predictions']
});
Here is an example of making four quality prediction requests:
(async () => {
try {
const now = new Date();
const thisTimeTomorrow = now.setDate(now.getDate() + 1);
const resp = await sunburst.batchQuality([
{
geo: [40.7933949, -77.8600012],
type: 'sunrise'
},
{
geo: [40.7933949, -77.8600012],
type: 'sunset'
},
{
geo: [40.7933949, -77.8600012],
type: 'sunrise',
after: thisTimeTomorrow
},
{
geo: [40.7933949, -77.8600012],
type: 'sunset',
after: thisTimeTomorrow
}
]);
resp.forEach(({ collection, error }) => {
if (error) {
// Handle individual query errors separately,
// as some queries may have still succeeded.
return console.error(error);
}
collection.features.forEach(({ properties }) => {
console.log(properties);
});
});
} catch (ex) {
// Handle general network or parsing errors.
return console.error(ex);
}
})();
More examples, for each endpoint: https://sunburst.sunsetwx.com/v1/docs
The source code is available under the ISC License.