Skip to content

A basic weather package that utilizes darksky and mapbox api ...

Notifications You must be signed in to change notification settings

Devorein/weyder-package

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weyder

1. Installation

npm install weyder

2. Using weyder

const weyder = require('weyder') // OR
const {geoCode,foreCast,setAccessToken,setWeatherDataSpan} = require('weyder');

Exported values overview

  • geoCode (location) => [ latitude,longitude ]
  • foreCast ([ latitude,longitude ]) => weather Information
  • setAccessToken ("mapbox" || "darksky", mapbox_token || darksky_token)
  • setWeatherDataSpan ({"currently" || "minutely" || "daily": boolean})

setAccessToken

This function is used to set the access token of mapbox and darksky endpoints

Create a free darksky and mapbox account, copy your own access token and pass the api name and access token to setAccessToken

setAccessToken("darksky","your_DarkSky_AccessToken")
setAccessToken("mapbox","your_MapBox_AccessToken")

setWeatherDataSpan

Use this function and set appropriate time span to get the more information from the api.

Object properties currently, minutely, hourly, daily, value <boolean>

setWeatherDataSpan({
    'currently': true,
    'minutely': false,
    'daily': true
})

The above sets

  • currently = true,
  • minutely = false,
  • hourly = false,
  • daily = true

3. Necessary Resources

NOTE: To undestand what currently, hourly, daily holds, visit https://darksky.net/dev/docs#data-point

Here's a snapshot of currently

currently_data

Here's a snapshot of hourly

hourly_data

Here's a snapshot of daily

daily_data

4. Basic Usage

Using the api (async/await style)

const getWeatherData = async (location) =>{
    const geocode = await geoCode(location)
    const forecast = await foreCast(geocode)
    console.log(forecast)
}
getWeatherData("Austin")
// Output
// {
//     currently: [...],
//     hourly: [...]
//     daily: [...],
// }

Using the api (promises style)

geoCode('Austin')
.then(geocode => foreCast(geocode))
.then(forecast => {
    console.log(forecast);
})
.catch(e=>{
    console.log(e);
})

// Output
// {
//     currently: [...],
//     hourly: [...]
//     daily: [...],
// }

Using the api (callbacks style)

geoCode("Austin",(err,geocode)=>{
    if(err) return err
    foreCast(geocode,(err,forecast)=>{
        if(err) return err
        console.log(forecast)
    })
})

// Output
// {
//     currently: [...],
//     hourly: [...]
//     daily: [...],
// }

5. Total Usage

const {geoCode,foreCast,setAccessToken,setWeatherDataSpan} = require('weyder');

setAccessToken("darksky","your_DarkSky_AccessToken")
setAccessToken("mapbox","your_MapBox_AccessToken")

setWeatherDataSpan({
    'currently': true,
    'minutely': false,
    'daily': true
})

geoCode('Austin')
.then(geocode => foreCast(geocode))
.then(forecast => {
    console.log(forecast);
})
.catch(e=>{
    console.log(e);
})

// Output
// {
//     currently: [...],
//     hourly: [...]
//     daily: [...],
// }

TODO:

  1. Still thinking :^)

About

A basic weather package that utilizes darksky and mapbox api ...

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published