@ace-fetch/core
Version:
Fetch Provider.
61 lines (60 loc) • 1.57 kB
TypeScript
import type { PluginDefinition, Request } from '../types';
interface ReturnTypeLoading {
/**
* show loading handler
* @returns hide loading handler
*/
(): () => void;
}
interface StatusTypeLoading {
/**
* @param loading loading status
* @param text loading text
*/
(loading: boolean, text?: string): void;
}
/**
* loading handler, show loading status according to the status or return hide loading handler
* @param loading loading status
* @param text loading text
* @returns hide loading handler
*/
export type LoadingHandler = ReturnTypeLoading | StatusTypeLoading;
export type LoadingOptions = {
/**
* delay (ms)
* @default 260
*/
delay?: number;
/**
* custom loading handler
*/
handler?: LoadingHandler;
};
/**
* regist loading plugin on current promise request
* @param request request promise
* @param options catch error options
*/
export declare function registLoading(request: Request, options: LoadingOptions): Request;
/**
* 注入加载中插件
* 只在regist apis上运行 (and 自定义条件下)
* @param options 插件配置
*/
export declare const createLoadingPlugin: PluginDefinition<LoadingOptions>;
declare module '../types' {
interface RequestCustomConfig {
/**
* enable loading
* or custom loading handler/options
* @default false
*/
loading?: boolean | LoadingHandler | Required<LoadingOptions>;
/**
* loading text
*/
loadingText?: string;
}
}
export {};