UNPKG

@ar.io/sdk

Version:

[![codecov](https://codecov.io/gh/ar-io/ar-io-sdk/graph/badge.svg?token=7dXKcT7dJy)](https://codecov.io/gh/ar-io/ar-io-sdk)

41 lines (40 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AxiosHTTPService = void 0; const http_client_js_1 = require("../utils/http-client.js"); const error_js_1 = require("./error.js"); const logger_js_1 = require("./logger.js"); class AxiosHTTPService { axios; logger; constructor({ url, logger = logger_js_1.Logger.default, }) { this.logger = logger; this.axios = (0, http_client_js_1.createAxiosInstance)({ axiosConfig: { baseURL: url, }, logger: this.logger, }); } async get({ endpoint, signal, allowedStatuses = [200, 202], headers, params, }) { this.logger.debug(`Get request to endpoint: ${endpoint} with params ${JSON.stringify(params, undefined, 2)}`); const { status, statusText, data } = await this.axios.get(endpoint, { headers, signal, params, }); this.logger.debug(`Response status: ${status} ${statusText}`); if (!allowedStatuses.includes(status)) { switch (status) { case 404: throw new error_js_1.NotFound(statusText); case 400: throw new error_js_1.FailedRequestError(status, statusText); default: throw new error_js_1.UnknownError(statusText); } } return data; } } exports.AxiosHTTPService = AxiosHTTPService;