UNPKG

@oraichain/oraidex-evm-sdk

Version:
89 lines 2.62 kB
import axios from 'axios'; // Default config const defaultConfig = { timeout: 30000, // 30 seconds headers: { 'Content-Type': 'application/json', }, }; // Create axios instance with default config const createAxiosInstance = (config = {}) => { const instance = axios.create({ ...defaultConfig, ...config, }); // Response interceptor instance.interceptors.response.use((response) => { return response; }, (error) => { // Handle common errors if (error.response) { // Server responded with error status const errorResponse = { message: error.response.data?.message || 'An error occurred', status: error.response.status, errors: error.response.data?.errors, }; return Promise.reject(errorResponse); } else if (error.request) { // Request was made but no response received return Promise.reject({ message: 'No response received from server', status: 0, }); } else { // Something else happened return Promise.reject({ message: error.message || 'An error occurred', status: 0, }); } }); return instance; }; // API methods export class ApiClient { constructor(config) { this.instance = createAxiosInstance(config); } async get(url, config) { const response = await this.instance.get(url, config); return { data: response.data, status: response.status, }; } async post(url, data, config) { const response = await this.instance.post(url, data, config); return { data: response.data, status: response.status, }; } async put(url, data, config) { const response = await this.instance.put(url, data, config); return { data: response.data, status: response.status, }; } async delete(url, config) { const response = await this.instance.delete(url, config); return { data: response.data, status: response.status, }; } async patch(url, data, config) { const response = await this.instance.patch(url, data, config); return { data: response.data, status: response.status, }; } } // Create default instance export const apiClient = new ApiClient(); //# sourceMappingURL=ApiClient.js.map