import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios"; export class Api { private api: AxiosInstance; constructor (config: AxiosRequestConfig) { this.api = axios.create(config); this.api.interceptors.request.use((param: AxiosRequestConfig) => ({ ...param })); } protected getUri (config?: AxiosRequestConfig): string { return this.api.getUri(config); } protected request> (config: AxiosRequestConfig): Promise { return this.api.request(config); } protected get> (url: string, config?: AxiosRequestConfig): Promise { return this.api.get(url, config); } protected delete> (url: string, config?: AxiosRequestConfig): Promise { return this.api.delete(url, config); } protected head> (url: string, config?: AxiosRequestConfig): Promise { return this.api.head(url, config); } protected post> (url: string, data?: string, config?: AxiosRequestConfig): Promise { return this.api.post(url, data, config); } protected put> (url: string, data?: string, config?: AxiosRequestConfig): Promise { return this.api.put(url, data, config); } protected patch> (url: string, data?: string, config?: AxiosRequestConfig): Promise { return this.api.patch(url, data, config); } }