@ar.io/sdk
Version:
[](https://codecov.io/gh/ar-io/ar-io-sdk)
41 lines (40 loc) • 1.48 kB
JavaScript
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;
;