@dhlab/error-boundary
Version:
A universal React error boundary library that works with any router
70 lines • 2.69 kB
TypeScript
import type { AxiosError } from "axios";
import type { HTTPError } from "ky";
import type { TPartialErrorConfig } from "../types/api-error";
export declare const getErrorConfig: (error: HTTPError | AxiosError, overrideConfig?: TPartialErrorConfig) => {
readonly type: "default";
readonly name: "Bad Request";
readonly message: "잘못된 요청입니다.";
readonly action: {
readonly type: "go-back";
readonly message: "이전 페이지로 돌아가기";
};
} | {
readonly type: "default";
readonly name: "Unauthorized";
readonly message: "로그인이 필요합니다.";
readonly action: {
readonly type: "go-login";
readonly message: "로그인 페이지로 이동";
};
} | {
readonly type: "default";
readonly name: "Forbidden";
readonly message: "권한이 없습니다.";
readonly action: {
readonly type: "go-back";
readonly message: "이전 페이지로 돌아가기";
};
} | {
readonly type: "default";
readonly name: "Not Found";
readonly message: "요청하신 리소스를 찾을 수 없습니다.";
readonly action: {
readonly type: "go-back";
readonly message: "이전 페이지로 돌아가기";
};
} | {
readonly type: "default";
readonly name: "Conflict";
readonly message: "이미 존재하는 리소스입니다.";
readonly action: {
readonly type: "go-root";
readonly message: "홈으로 이동";
};
} | {
readonly type: "default";
readonly name: "Internal Server Error";
readonly message: "잠시 후 다시 시도해주세요.";
readonly action: {
readonly type: "retry";
readonly message: "다시 시도하기";
};
} | ({
type: "default";
} & {
type: "default";
onError?: (error: HTTPError | AxiosError, info: import("react").ErrorInfo, statusCode: number) => void;
} & Partial<Omit<import("../types/api-error").TErrorConfigElementType, "action" | "message"> & {
action: Partial<import("../types/api-error").TErrorConfigElementType["action"]>;
message: string;
}>) | ({
type: "custom";
} & {
type: "custom";
onError?: (error: HTTPError | AxiosError, info: import("react").ErrorInfo, statusCode: number) => void;
fallback: React.ReactNode | ((error: HTTPError | AxiosError, resetErrorBoundary: () => void) => React.ReactNode);
});
export declare const isAxiosError: (err: unknown) => err is AxiosError;
export declare const isKyError: (err: unknown) => err is HTTPError;
export declare const isApiError: (err: unknown) => err is HTTPError<unknown> | AxiosError<unknown, any>;
//# sourceMappingURL=api-error.d.ts.map