google-api-load

0.0.4 • Public • Published

google-api-loader npm Version Build Status Bundle Size

A thin, Promise-returning helper for loading the Google JavaScript API.

This work is totaly based on load-google-maps-api, just needed something like that for GAPI client, nothing more, sorry ;)

  • The Promise’s fulfilled callback is passed the gapi object
  • Optionally set a timeout, an API key, the language, and more

Usage

Example using import:

import loadGoogleApi from 'google-api-load'
 
loadGoogleApi().then(function (gapi) {
  gapi.load('client:auth2', function () {
    console.log('client:auth2 library has been loaded')
  })
})

More complex example using authentication and the Calendar API:

import loadGoogleApi from 'google-api-load'
 
var gapi = undefined;
 
function gapiSignIn(status) {
  if (status) {
    // Do something
  }
}
 
loadGoogleAPI({
  auth: {
    apiKey: "<YOUR_GAPI_KEY>",
    clientId: "<YOUR_CLIENT_ID>",
    discoveryDocs: ["https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"],
    scope: 'https://www.googleapis.com/auth/calendar.readonly',
    listener: gapiSignIn
  }
}).then((GoogleAPI) => {
  gapi = GoogleAPI;
}, (reason) => {
    console.error(reason);
});

Why

Need to use Google API with Webpack in better way ... such as load-google-maps-api

API

const loadGoogleApi = require('google-load-api')

GoogleApi([options])

Returns a Promise.

  • Fulfilled if loading was successful. The fulfilled callback is passed the gapi object. If loadGoogleApi is called multiple times on a page, the fulfilled callback will be passed the previously-loaded gapi object.
  • Rejected if we weren’t able to load the Google API after options.timeout.

See Usage.

options is an optional object literal:

Key Description Default
timeout Time in milliseconds before rejecting the Promise 10000
auth.apiKey The API key to use undefined
auth.discoveryDocs An array of discovery doc URLs or discovery doc JSON objects undefined
auth.clientId The app's client ID, found and created in the Google Developers Console undefined
auth.scope The scopes to request, as a space-delimited string undefined
auth.listener Listener function (boolean) for sign in events undefined
auth.timeout Time in milliseconds before rejecting the Promise when loading client:auth2 library 5000

WARNING: If you use auth dictionary then all undefined fields/options are mandatory !

Installation

$ yarn add google-api-load

License

MIT

Package Sidebar

Install

npm i google-api-load

Weekly Downloads

2

Version

0.0.4

License

MIT

Unpacked Size

7.99 kB

Total Files

6

Last publish

Collaborators

  • wooyey