UNPKG

wundertec-core

Version:

Librería estándar de utilidades e integraciones AWS + helpers generales

58 lines (50 loc) 1.5 kB
import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios"; export interface AxiosClientOptions extends AxiosRequestConfig { /** Tiempo por defecto de timeout en ms */ timeout?: number; } export class AxiosClient { private client: AxiosInstance; constructor(config?: AxiosClientOptions) { this.client = axios.create({ timeout: config?.timeout || 5000, ...config, }); } /** Realiza una petición GET y retorna los datos */ async get<T>(url: string, config?: AxiosRequestConfig): Promise<T> { const response: AxiosResponse<T> = await this.client.get<T>(url, config); return response.data; } /** Realiza una petición POST con datos y retorna los datos */ async post<T>( url: string, data?: any, config?: AxiosRequestConfig ): Promise<T> { const response: AxiosResponse<T> = await this.client.post<T>( url, data, config ); return response.data; } /** Realiza una petición PUT y retorna los datos */ async put<T>( url: string, data?: any, config?: AxiosRequestConfig ): Promise<T> { const response: AxiosResponse<T> = await this.client.put<T>( url, data, config ); return response.data; } /** Realiza una petición DELETE y retorna los datos */ async delete<T>(url: string, config?: AxiosRequestConfig): Promise<T> { const response: AxiosResponse<T> = await this.client.delete<T>(url, config); return response.data; } }