import type { AnyFunc, ReturnVoid } from '@vunk/shared'; import type { LoadingOptions } from 'element-plus'; import type { Ref } from 'vue'; import type { RestFetch } from '../RestFetch'; export declare const defaultOnerror: import("lodash").DebouncedFuncLeading<(err: any) => void>; /** * 默认的业务成功条件 * @param res * @returns */ export declare const defaultCustomOk: AnyFunc; export declare function ElementPlusRestFetchPlugin(restFetch: RestFetch, pluginOptions?: ElementPlusRestFetchPluginOptions): void; export interface ElementPlusRestFetchPluginOptions { /** * 自定义业务响应成功的条件 * @default * (res) => (res.code === 200 || res.status === 10001) */ customOk?: AnyFunc; /** * 自定义错误处理 * @default (e) => { throw e } */ onerror?: Onerror; } export interface ElementPlusRestFetchContext { /** * 请求成功 将提示 msg */ successMessage?: boolean | string; /** * 后端有响应 * 但是 code 不成功 * 是否需要抛出异常 * @default false */ throwResErr?: boolean; /** * 是否显示 loading * @default true */ loading?: boolean | LoadingOptions | Ref; /** * 请求成功后,是否关闭 loading */ loadingClose?: boolean; /** * loading 延时出现 */ loadingDelay?: number; /** * 若为true 则在请求失败时,触发回调 onerror * @default true */ error?: boolean; /** * fetch 请求错误时回调 */ onerror?: Onerror; } /** * 错误回调 */ export type Onerror = (e: E) => ReturnVoid; /** * Response: !response.ok * Error: request error, abort error * { msg: string }: 业务错误 * string: 业务错误 */ export type ErrorEvent = BaseErrorEvent | { msg?: string; message?: string; } | string; /** * Response: !response.ok * Error: request error, abort error */ export type BaseErrorEvent = Response | Error;