49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import axiosClient from "axios";
|
|
import { setupInterceptorsTo } from "./setupInterceptors";
|
|
|
|
// extend the AxiosRequestConfig interface and add two optional options raw and silent. I
|
|
// https://dev.to/mperon/axios-error-handling-like-a-boss-333d
|
|
declare module "axios" {
|
|
export interface AxiosRequestConfig {
|
|
raw?: boolean;
|
|
silent?: boolean;
|
|
}
|
|
}
|
|
|
|
export const defaultAxiosRequestConfig = {
|
|
mode: "cors",
|
|
cache: "no-cache",
|
|
credentials: "same-origin",
|
|
headers: {
|
|
Accept: "application/json",
|
|
"Content-Type": "application/json; charset=utf-8",
|
|
"Cache-Control": "no-cache",
|
|
"Access-Control-Allow-Origin": "*", // Could work and fix the previous problem, but not in all APIs
|
|
//'api-key': SERVER_API_KEY,
|
|
},
|
|
//timeout: 300,
|
|
|
|
// `onUploadProgress` allows handling of progress events for uploads
|
|
// browser only
|
|
//onUploadProgress: function (progressEvent) {
|
|
// Do whatever you want with the native progress event
|
|
//},
|
|
|
|
// `onDownloadProgress` allows handling of progress events for downloads
|
|
// browser only
|
|
//onDownloadProgress: function (progressEvent) {
|
|
// Do whatever you want with the native progress event
|
|
//},
|
|
|
|
// `cancelToken` specifies a cancel token that can be used to cancel the request
|
|
/*cancelToken: new CancelToken(function (cancel) {
|
|
}),*/
|
|
};
|
|
|
|
/**
|
|
* Creates an initial 'axios' instance with custom settings.
|
|
*/
|
|
|
|
export const createAxiosInstance = () =>
|
|
setupInterceptorsTo(axiosClient.create(defaultAxiosRequestConfig));
|