-
Notifications
You must be signed in to change notification settings - Fork 816
/
Copy pathGoogleApi.js
69 lines (58 loc) · 1.68 KB
/
GoogleApi.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['exports'], factory);
} else if (typeof exports !== "undefined") {
factory(exports);
} else {
var mod = {
exports: {}
};
factory(mod.exports);
global.GoogleApi = mod.exports;
}
})(this, function (exports) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var GoogleApi = exports.GoogleApi = function GoogleApi(opts) {
opts = opts || {};
if (!opts.hasOwnProperty('apiKey')) {
throw new Error('You must pass an apiKey to use GoogleApi');
}
var apiKey = opts.apiKey;
var libraries = opts.libraries || ['places'];
var client = opts.client;
var URL = opts.url || 'https://maps.googleapis.com/maps/api/js';
var googleVersion = opts.version || '3.31';
var script = null;
var google = typeof window !== 'undefined' && window.google || null;
var loading = false;
var channel = null;
var language = opts.language;
var region = opts.region || null;
var onLoadEvents = [];
var url = function url() {
var url = URL;
var params = {
key: apiKey,
callback: 'CALLBACK_NAME',
libraries: libraries.join(','),
client: client,
v: googleVersion,
channel: channel,
language: language,
region: region,
onerror: 'ERROR_FUNCTION'
};
var paramStr = Object.keys(params).filter(function (k) {
return !!params[k];
}).map(function (k) {
return k + '=' + params[k];
}).join('&');
return url + '?' + paramStr;
};
return url();
};
exports.default = GoogleApi;
});