UNPKG

@tatumio/tatum-v1

Version:

Tatum API client allows browsers and Node.js clients to interact with Tatum API.

85 lines 7.9 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateBody = exports.httpDelete = exports.put = exports.postMultiForm = exports.post = exports.get = exports.axios = void 0; const axios_1 = __importDefault(require("axios")); const axios_retry_1 = __importStar(require("axios-retry")); const class_transformer_1 = require("class-transformer"); const class_validator_1 = require("class-validator"); const http_1 = __importDefault(require("http")); const https_1 = __importDefault(require("https")); const package_json_1 = require("../../package.json"); const constants_1 = require("../constants"); exports.axios = axios_1.default.create({ httpAgent: new http_1.default.Agent({ keepAlive: true }), httpsAgent: new https_1.default.Agent({ keepAlive: true }) }); // In case of 429 Too Many Requests response error, request is triggered again axios_retry_1.default(exports.axios, { retryDelay: () => process.env.TATUM_RETRY_DELAY ? Number(process.env.TATUM_RETRY_DELAY) : constants_1.TATUM_RETRY_DELAY, retries: process.env.TATUM_RETRIES ? Number(process.env.TATUM_RETRIES) : constants_1.TATUM_RETRIES, retryCondition: (error) => { var _a; return axios_retry_1.isNetworkOrIdempotentRequestError(error) || ((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) === 429; } }); const baseUrl = () => process.env.TATUM_API_URL || constants_1.TATUM_API_URL; const headers = () => ({ headers: { 'x-api-key': process.env.TATUM_API_KEY, 'x-testnet-type': process.env.TESTNET_TYPE || 'ethereum-ropsten', 'User-Agent': `Tatum_SDK_JS/${package_json_1.version}`, } }); const get = async (url) => { const { data } = await exports.axios.get(`${baseUrl()}${url}`, headers()); return data; }; exports.get = get; // eslint-disable-next-line @typescript-eslint/ban-types const post = async (url, body, classType) => { await exports.validateBody(body, classType); const { data } = await exports.axios.post(`${baseUrl()}${url}`, body, headers()); return data; }; exports.post = post; // eslint-disable-next-line @typescript-eslint/ban-types const postMultiForm = async (url, body) => { const h = headers(); h.headers = Object.assign(Object.assign({}, h.headers), body.getHeaders()); const { data } = await exports.axios.post(`${baseUrl()}${url}`, body, h); return data; }; exports.postMultiForm = postMultiForm; // eslint-disable-next-line @typescript-eslint/ban-types const put = async (url, body, classType) => { await exports.validateBody(body, classType); const { data } = await exports.axios.put(`${baseUrl()}${url}`, body, headers()); return data; }; exports.put = put; const httpDelete = async (url) => { await exports.axios.delete(`${baseUrl()}${url}`, headers()); }; exports.httpDelete = httpDelete; // eslint-disable-next-line @typescript-eslint/ban-types const validateBody = async (body, classType) => { if (classType) { const classInstance = class_transformer_1.plainToClass(classType, body); await class_validator_1.validateOrReject(classInstance); } }; exports.validateBody = validateBody; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF0dW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29ubmVjdG9yL3RhdHVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBc0I7QUFDdEIsMkRBQTBFO0FBQzFFLHlEQUErQztBQUMvQyxxREFBaUQ7QUFFakQsZ0RBQXdCO0FBQ3hCLGtEQUEwQjtBQUMxQixxREFBNEM7QUFDNUMsNENBQTZFO0FBR2hFLFFBQUEsS0FBSyxHQUFHLGVBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUIsU0FBUyxFQUFFLElBQUksY0FBSSxDQUFDLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUM1QyxVQUFVLEVBQUUsSUFBSSxlQUFLLENBQUMsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDO0NBQy9DLENBQUMsQ0FBQztBQUVILDhFQUE4RTtBQUM5RSxxQkFBVSxDQUFDLGFBQUssRUFBRTtJQUNoQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQWlCO0lBQzNHLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUFhO0lBQ3RGLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLFdBQUMsT0FBQSwrQ0FBaUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFBLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFFBQVEsMENBQUUsTUFBTSxNQUFLLEdBQUcsQ0FBQSxFQUFBO0NBQ3ZHLENBQUMsQ0FB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