axios-miniprogram/src/core/createError.ts

44 lines
1.1 KiB
TypeScript
Raw Normal View History

import { cleanStack } from '../helpers/error';
2023-03-24 20:15:51 +08:00
import { AxiosAdapterTask } from '../adapter';
2023-03-23 20:09:00 +08:00
import { AxiosRequestConfig, AxiosResponse, AxiosResponseError } from './Axios';
export type AxiosErrorResponse = AxiosResponse | AxiosResponseError;
class AxiosError extends Error {
public config: AxiosRequestConfig;
public request?: AxiosAdapterTask;
public response?: AxiosErrorResponse;
public constructor(
message: string,
config: AxiosRequestConfig,
request?: AxiosAdapterTask,
response?: AxiosErrorResponse,
) {
super(message);
this.config = config;
this.request = request;
this.response = response;
Object.setPrototypeOf(this, AxiosError.prototype);
}
}
export function createError(
message: string,
config: AxiosRequestConfig,
request?: AxiosAdapterTask,
response?: AxiosErrorResponse,
): AxiosError {
const axiosError = new AxiosError(message, config, request, response);
cleanStack(axiosError);
return axiosError;
2023-03-23 20:09:00 +08:00
}
2023-04-05 13:31:48 +08:00
export function isAxiosError(value: unknown): value is AxiosError {
return value instanceof AxiosError;
}