@venly/connect
Version:
Venly Connect SDK
225 lines • 9.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var Utils = /** @class */ (function () {
function Utils() {
}
Object.defineProperty(Utils, "rawEnvironment", {
get: function () {
return Utils.rawEnvironmentHolder;
},
set: function (env) {
Utils.rawEnvironmentHolder = env;
var split = env.split('-');
Utils.environment = split[0];
Utils.connectEnvironment = split.length > 1 && split[1] || '';
Utils.keycloakEnvironment = split.length > 2 && split[2] || '';
},
enumerable: false,
configurable: true
});
;
Utils.environments = function () {
return {
'qa': {
api: 'https://api-wallet-qa.venly.io/api',
connect: 'https://connect-qa.venly.io',
login: 'https://login-qa.venly.io/auth',
storage: 'https://storage-qa.venly.io/production',
},
'staging': {
api: 'https://api-wallet-staging.venly.io/api',
connect: 'https://connect-staging.venly.io',
login: 'https://login-staging.venly.io/auth',
storage: 'https://storage-staging.venly.io/production',
},
'sandbox': {
api: 'https://api-wallet-sandbox.venly.io/api',
connect: 'https://connect-sandbox.venly.io',
login: 'https://login-staging.venly.io/auth',
storage: 'https://storage.venly.io/sandbox',
},
};
};
Object.defineProperty(Utils, "urls", {
get: function () {
var postfix = '';
switch (Utils.environment) {
case 'local':
postfix = 'qa';
break;
case 'prod':
case 'production':
postfix = '';
break;
default:
postfix = Utils.environment;
}
var environment = this.environments()[postfix];
if (environment) {
return {
api: environment.api,
connect: Utils.environment === 'local' || Utils.connectEnvironment === 'local' ? 'http://localhost:8181' : environment.connect,
login: Utils.keycloakEnvironment === 'local' ? 'https://localhost:8443' : environment.login,
storage: environment.storage,
};
}
else {
return {
api: 'https://api-wallet.venly.io/api',
connect: 'https://connect.venly.io',
login: 'https://login.venly.io/auth',
storage: 'https://storage.venly.io/production',
};
}
},
enumerable: false,
configurable: true
});
Utils.removeNulls = function (obj) {
return Object.keys(obj)
.filter(function (key) { return obj[key] !== null && obj[key] !== undefined; }) // Remove undef. and null.
.reduce(function (newObj, key) {
var _a, _b;
if (typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
return Object.assign(newObj, (_a = {}, _a[key] = Utils.removeNulls(obj[key]), _a));
}
else {
return Object.assign(newObj, (_b = {}, _b[key] = obj[key], _b));
}
}, {});
};
Utils.removeNullsAndEmpty = function (obj) {
return Object.keys(obj)
.filter(function (key) { return obj[key] !== null && obj[key] !== undefined && obj[key] !== ''; }) // Remove undef. and null.
.reduce(function (newObj, key) {
var _a, _b;
if (typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
return Object.assign(newObj, (_a = {}, _a[key] = Utils.removeNullsAndEmpty(obj[key]), _a));
}
else {
return Object.assign(newObj, (_b = {}, _b[key] = obj[key], _b));
}
}, {});
};
Utils.messages = function () {
return {
hasValidOrigin: function (message) {
return message.origin === Utils.urls.connect;
},
hasType: function (message) {
return message.data && message.data.type && message.data.type !== '';
},
isOfType: function (message, eventType) {
return Utils.messages().hasType(message) && message.data.type === eventType.toString();
},
hasCorrectCorrelationID: function (message, correlationID) {
return correlationID && message.data && message.data.correlationID === correlationID;
}
};
};
Utils.formatNumber = function (value, minDecimals, maxDecimals) {
if (minDecimals === void 0) { minDecimals = 2; }
if (maxDecimals === void 0) { maxDecimals = minDecimals; }
return new Intl.NumberFormat('en-US', {
minimumFractionDigits: minDecimals,
maximumFractionDigits: maxDecimals,
}).format(value);
};
Utils.rawValue = function () {
return {
toTokenValue: function (rawValue, decimals) { return rawValue / Math.pow(10, decimals); },
toGwei: function (rawValue) { return rawValue / Math.pow(10, 9); },
};
};
Utils.gwei = function () {
return {
toRawValue: function (rawValue) { return rawValue * Math.pow(10, 9); },
};
};
Utils.openExternalUrl = function (url, targetBlank) {
if (targetBlank === void 0) { targetBlank = true; }
if (targetBlank) {
var newWindow = window.open('', '_blank');
if (newWindow) {
newWindow.opener = null;
newWindow.location.assign(url);
}
return newWindow;
}
else {
window.location.href = url;
return window;
}
};
Utils.zeroIfUndefined = function (numberToVerify) {
return numberToVerify ? numberToVerify : 0;
};
Utils.defaultRedirectUriIfNotPresent = function (options) {
if (options === void 0) { options = {}; }
if (!options.redirectUri) {
options.redirectUri = window.location.href;
}
return options;
};
Utils.http = function () {
return {
postInForm: function (to, request, bearerTokenProvider, options) {
options = Utils.defaultRedirectUriIfNotPresent(options);
var form = document.createElement('form');
form.action = Utils.http().buildUrl(to, options);
form.method = 'POST';
var inputBearer = document.createElement('input');
inputBearer.type = 'hidden';
inputBearer.name = 'bearerToken';
inputBearer.value = bearerTokenProvider();
form.appendChild(inputBearer);
var inputData = document.createElement('input');
inputData.type = 'hidden';
inputData.name = 'data';
inputData.value = JSON.stringify(tslib_1.__assign({}, request));
form.appendChild(inputData);
document.body.appendChild(form);
form.submit();
},
buildUrl: function (to, options) {
if (options && (options.redirectUri || options.correlationID)) {
var params = {};
if (options.redirectUri) {
params.redirectUri = options.redirectUri;
}
if (options.correlationID) {
params.cid = options.correlationID;
}
return Utils.http().addRequestParams(to, params);
}
return to;
},
addRequestParams: function (url, params) {
if (url && params) {
var paramsAsString = new URLSearchParams(params).toString();
if (url && url.indexOf('?') > 0) {
return url + "&" + paramsAsString;
}
else {
return url + "?" + paramsAsString;
}
}
return url;
}
};
};
Utils.uuidv4 = function () {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
};
Utils.rawEnvironmentHolder = '';
Utils.environment = '';
Utils.connectEnvironment = '';
Utils.keycloakEnvironment = '';
return Utils;
}());
exports.default = Utils;
//# sourceMappingURL=Utils.js.map