axios-miniprogram/src/core/createError.ts

42 lines
1.1 KiB
TypeScript

import { cleanStack } from '../helpers/error';
import { AxiosAdapterTask } from '../adapter';
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,
response: AxiosErrorResponse,
request: AxiosAdapterTask,
) {
super(message);
this.config = config;
this.request = request;
this.response = response;
Object.setPrototypeOf(this, AxiosError.prototype);
}
}
export function createError(
message: string,
config: AxiosRequestConfig,
response: AxiosErrorResponse,
request: AxiosAdapterTask,
): AxiosError {
const axiosError = new AxiosError(message, config, response, request);
cleanStack(axiosError);
return axiosError;
}
export function isAxiosError(value: unknown): value is AxiosError {
return value instanceof AxiosError;
}