UNPKG

@venly/connect

Version:

Venly Connect SDK

225 lines • 9.03 kB
"use strict"; 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