@ace-fetch/graphql
Version:
Fetch Provider.
45 lines (44 loc) • 1.24 kB
TypeScript
import type { PluginDefinition } from '../types';
/**
* retry options
*/
export type RetryOptions = {
/**
* max retry count
* @default 3
*/
maxCount?: number;
/**
* enabled retry delay (formula(2 ^ count - 1 / 2) * 1000 ms)
* @default true
*/
delay?: boolean;
/**
* customized retry condition
* @default (error) => error.message === 'Network Error'
*/
validateError?: (error: Error) => boolean;
};
export declare const RetryCountSymbol = "__RetryCount__";
/**
* regist retry plugin on current promise request
* @param request request promise
* @param options catch error options
*/
export declare function registRetry<Request extends (config: any) => any>(request: Request, options: RetryOptions): (config?: Parameters<Request>[0]) => ReturnType<Request>;
/**
* 注册重试插件
* 只在regist graphqls上运行 (and 自定义条件下)
* @param options 插件配置
*/
export declare const createRetryPlugin: PluginDefinition<RetryOptions>;
declare module '../types' {
interface RequestCustomConfig {
/**
* enable retry
* or custom retry options
* @default false
*/
retry?: boolean | RetryOptions;
}
}