Compare commits

..

No commits in common. "b6f335bc09edb0a665537fd605f594f365c2950f" and "c1b55c5d98b5e0b22b1416018db828ba59166522" have entirely different histories.

3 changed files with 35 additions and 48 deletions

View File

@ -1,5 +1,5 @@
import Axios, { AxiosError, AxiosRequestConfig } from "axios"; import Axios, {AxiosError, AxiosRequestConfig} from "axios";
import { S5Error } from "./client.js"; import {S5Error} from "./client.js";
export interface CancelablePromise<T> extends Promise<T> { export interface CancelablePromise<T> extends Promise<T> {
cancel: () => void; cancel: () => void;
@ -9,7 +9,7 @@ export const customInstance = <T>(
config: AxiosRequestConfig, config: AxiosRequestConfig,
options?: AxiosRequestConfig, options?: AxiosRequestConfig,
): CancelablePromise<T> => { ): CancelablePromise<T> => {
const abort = new AbortController(); const source = Axios.CancelToken.source();
/* /*
Hack to ensure that the data is passed to the request as an option. Hack to ensure that the data is passed to the request as an option.
@ -20,26 +20,21 @@ export const customInstance = <T>(
delete config.data; delete config.data;
} }
const instance = Axios.create({ baseURL: options?.baseURL }); const instance = Axios.create({baseURL: options?.baseURL});
const promise = instance({ const promise = instance({
signal: abort.signal,
...config, ...config,
...options, ...options,
}) cancelToken: source.token,
.then(({ data }) => data) }).then(({data}) => data).catch((error) => {
.catch((error) => {
if (Axios.isCancel(error)) { if (Axios.isCancel(error)) {
return; return;
} }
throw new S5Error( throw new S5Error((error as AxiosError).message, (error as AxiosError).response?.status as number);
(error as AxiosError).message, })
(error as AxiosError).response?.status as number,
);
});
// @ts-ignore // @ts-ignore
promise.cancel = () => { promise.cancel = () => {
abort.abort("Query was cancelled"); source.cancel("Query was cancelled");
}; };
return promise as CancelablePromise<T>; return promise as CancelablePromise<T>;

View File

@ -18,7 +18,6 @@ export type CustomClientOptions = {
customCookie?: string; customCookie?: string;
onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void; onDownloadProgress?: (progressEvent: AxiosProgressEvent) => void;
onUploadProgress?: (progressEvent: AxiosProgressEvent) => void; onUploadProgress?: (progressEvent: AxiosProgressEvent) => void;
httpConfig?: AxiosRequestConfig;
}; };
export function optionsToConfig( export function optionsToConfig(
@ -30,7 +29,7 @@ export function optionsToConfig(
| CustomRegistryOptions | CustomRegistryOptions
)[] )[]
): AxiosRequestConfig { ): AxiosRequestConfig {
let config: AxiosRequestConfig = {}; const config: AxiosRequestConfig = {};
config.baseURL = client.portalUrl; config.baseURL = client.portalUrl;
@ -76,12 +75,5 @@ export function optionsToConfig(
config.headers = headers; config.headers = headers;
if (finalOptions?.httpConfig) {
config = {
...config,
...finalOptions.httpConfig,
};
}
return config; return config;
} }