@tatumio/tatum-v1
Version:
Tatum API client allows browsers and Node.js clients to interact with Tatum API.
85 lines • 7.9 kB
JavaScript
;
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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