@arkane-network/arkane-connect
Version:
Arkane Connect - api library for 3th parties
216 lines • 8.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var env_1 = tslib_1.__importDefault(require("../env"));
var QueryString = tslib_1.__importStar(require("querystring"));
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] || '';
},
enumerable: true,
configurable: true
});
;
Object.defineProperty(Utils, "env", {
get: function () {
return env_1.default;
},
enumerable: true,
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.arkane.network/auth',
},
'staging': {
api: 'https://api-wallet-staging.venly.io/api',
connect: 'https://connect-staging.venly.io',
login: 'https://login-staging.arkane.network/auth',
},
};
};
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://127.0.0.1:8181' : environment.connect,
login: environment.login,
};
}
else {
return {
api: "https://api-wallet.venly.io/api",
connect: "https://connect.venly.io",
login: "https://login.arkane.network/auth",
};
}
},
enumerable: true,
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 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 = QueryString.stringify(params);
if (url && url.indexOf('?') > 0) {
return url + "&" + paramsAsString;
}
else {
return url + "?" + paramsAsString;
}
}
return url;
}
};
};
Utils.rawEnvironmentHolder = '';
Utils.environment = '';
Utils.connectEnvironment = '';
return Utils;
}());
exports.default = Utils;
//# sourceMappingURL=Utils.js.map