UNPKG

send-crypto

Version:

A minimal JavaScript library / wallet for sending crypto assets

94 lines 6.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.retryNTimes = exports.fallback = exports.onlyTestnet = exports.onlyMainnet = exports.extractError = exports.sleep = void 0; const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); exports.sleep = sleep; const extractError = (error) => { if (error && typeof error === "object") { if (error.response) { return (0, exports.extractError)(error.response); } if (error.error) { return (0, exports.extractError)(error.error); } if (error.message) { return (0, exports.extractError)(error.message); } if (error.data) { return (0, exports.extractError)(error.data); } if (error.context) { return (0, exports.extractError)(error.context); } if (error.statusText) { return (0, exports.extractError)(error.statusText); } try { return JSON.stringify(error); } catch (error) { // Ignore JSON error } } // Remove `Error: ` prefix. try { if (typeof error === "string") { if (error.slice(0, 7).toLowerCase() === "Error: ") { // tslint:disable-next-line: no-parameter-reassignment error = error.slice(7); } return error; } return JSON.stringify(error); } catch (error) { // Ignore JSON error } return String(error); }; exports.extractError = extractError; const onlyMainnet = (x, testnet) => testnet ? undefined : x; exports.onlyMainnet = onlyMainnet; const onlyTestnet = (x, testnet) => testnet ? x : undefined; exports.onlyTestnet = onlyTestnet; const fallback = async (fallbacks) => { let firstError; for (const fn of fallbacks) { if (!fn) { continue; } try { return await fn(); } catch (error) { firstError = firstError || error; } } throw firstError || new Error("No result returned"); }; exports.fallback = fallback; const retryNTimes = async (fnCall, retries) => { let returnError; for (let i = 0; i < retries; i++) { try { return await fnCall(); } catch (error) { if (String(error).match(/timeout of .* exceeded/)) { returnError = error; } else { const errorMessage = (0, exports.extractError)(error); if (errorMessage) { // tslint:disable-next-line: no-object-mutation error.message += ` (${errorMessage})`; } throw error; } } await (0, exports.sleep)(500); } throw returnError; }; exports.retryNTimes = retryNTimes; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JldHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFPLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FDaEMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUR6QyxRQUFBLEtBQUssU0FDb0M7QUFFL0MsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFVLEVBQVUsRUFBRTtJQUMvQyxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDcEMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE9BQU8sSUFBQSxvQkFBWSxFQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNiLE9BQU8sSUFBQSxvQkFBWSxFQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU8sSUFBQSxvQkFBWSxFQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QztRQUNELElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUNaLE9BQU8sSUFBQSxvQkFBWSxFQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNmLE9BQU8sSUFBQSxvQkFBWSxFQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QztRQUNELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNsQixPQUFPLElBQUEsb0JBQVksRUFBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJO1lBQ0EsT0FBTyxJQUFJLENB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