32 lines
908 B
JavaScript
32 lines
908 B
JavaScript
var isNode = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';
|
|
var isRN = typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
|
|
var _btoa = null;
|
|
var helpers = null;
|
|
if (isNode || isRN) {
|
|
_btoa = function (str) {
|
|
return Buffer.from(str).toString('base64');
|
|
};
|
|
var url = require('url');
|
|
if (url.URL) {
|
|
// Use the new Node 6+ API for parsing URLs that supports username/password
|
|
var newURL = url.URL;
|
|
helpers = function (url) {
|
|
return new newURL(url);
|
|
};
|
|
}
|
|
else {
|
|
// Web3 supports Node.js 5, so fall back to the legacy URL API if necessary
|
|
helpers = require('url').parse;
|
|
}
|
|
}
|
|
else {
|
|
_btoa = btoa.bind(window);
|
|
helpers = function (url) {
|
|
return new URL(url);
|
|
};
|
|
}
|
|
module.exports = {
|
|
parseURL: helpers,
|
|
btoa: _btoa
|
|
};
|