@bva/ipgeo
v2.1.4
Published
A promise based JavaScript wrapper around popular IP Geolocation APIs
Downloads
3
Readme
IPGeo
IPGeo is a promise based JavaScript wrapper around popular IP Geolocation APIs.
Initial Setup
To setup an instance of IPGeo you'll need to import the library and then create an instance from the IPGeo class.
First add it to your repo:
yarn add @bva/ipgeo
Then use it in your JavaScript:
import IPGeo from "@bva/ipgeo";
const geo = new IPGeo();
geo.getGeo().then(data => console.log(data));
Options
When initializing a new IPGeo instance an optional options
argument can be passed to the Class instantiation. The options
argument is an Object
can have the following properties:
service
Service is the web service you want to use and can be any of the following values:
geojs
(default) - https://www.geojs.io/ipapi
- https://ipapi.co/- ... more to come
Methods
getGeo()
This method makes a request to the geo service and returns JSON response wrapped in a promise.
Example
geo.getGeo().then(data => console.log(data));
If using GeoJS the above code will log a JSON object that looks like this. Otherwise, it will log the chosen service's JSON structure.
Note: The first call to .getGeo()
will result in an API call which will store the data in sessionStorage under ipgeo
. All subsequent calls will pull data from sessionStorage unless it is not supported in the browser.
removeSessionGeoData()
This will remove geo data stored in sessionStorage under ipgeo
. If the browser doesn't support it nothing will happen.
Dealing with sessionStorage Data
The data stored in sessionStorage is under the name ipgeo
and is base64 encoded. To view the actual data you'll need to decode it using atob()
.
Example:
console.log(JSON.parse(atob(sessionStorage.getItem("ipgeo"))));