@ace-fetch/graphql
Version:
Fetch Provider.
62 lines (61 loc) • 1.54 kB
TypeScript
import type { PluginDefinition } 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,
* @return unloading handler
*/
export type LoadingHandler = ReturnTypeLoading | StatusTypeLoading;
/**
* loading options
*/
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 extends (config: any) => any>(request: Request, options: LoadingOptions): (config: Parameters<Request>[0]) => ReturnType<Request>;
/**
* 注入加载中插件
* 只在regist graphqls上运行 (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 {};