UNPKG

@andranik-arakelyan/js-utilities

Version:
1 lines 1.06 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.BaseApiClient=void 0;const axios_1=require("axios");class BaseApiClient{config;axiosInstance;constructor(config){this.config=config;this.axiosInstance=axios_1.default.create({baseURL:`${config.baseUrl}${config.urlPrefix||""}`,headers:{Authorization:`Bearer ${config.apiToken}`,"Content-Type":"application/json"}})}async request(options){const{path:path,query:query,body:body,method:method="GET"}=options;try{const response=await this.axiosInstance.request({url:path,method:method,params:query,data:body});return this.handleResponse(response)}catch(error){if(axios_1.default.isAxiosError(error)&&error.response){return this.handleResponse(error.response)}throw error}}handleResponse(response){const data=response.data;if(response.status<200||response.status>=300){const errorMessage=data?.error||data?.message||response.statusText;throw new Error(errorMessage)}if(data?.success===false){throw new Error(data.error||"Request failed")}return data}}exports.BaseApiClient=BaseApiClient;