vue-hooks-plus
Version:
Vue hooks library
42 lines (41 loc) • 2.52 kB
TypeScript
import { Ref } from 'vue';
import { UseRequestFetchState, UseRequestOptions, UseRequestPluginReturn, UseRequestService, UseRequestOptionsWithFormatResult, UseRequestOptionsWithInitialData } from './types';
export default class Fetch<TData, TParams extends unknown[] = any> {
serviceRef: Ref<UseRequestService<TData, TParams>>;
options: Partial<UseRequestOptions<TData, TParams, any> & UseRequestOptionsWithFormatResult<TData, TParams, any, any> & UseRequestOptionsWithInitialData<TData, TParams, any>>;
setUpdateData: (currentState: unknown, key?: keyof UseRequestFetchState<TData, TParams>) => void;
initState: Partial<UseRequestFetchState<TData, TParams>>;
pluginImpls: UseRequestPluginReturn<TData, TParams>[] | undefined;
count: number;
state: UseRequestFetchState<TData, TParams>;
previousValidData: UseRequestFetchState<TData, TParams>['data'];
constructor(serviceRef: Ref<UseRequestService<TData, TParams>>, options: Partial<UseRequestOptions<TData, TParams, any> & UseRequestOptionsWithFormatResult<TData, TParams, any, any> & UseRequestOptionsWithInitialData<TData, TParams, any>>, setUpdateData: (currentState: unknown, key?: keyof UseRequestFetchState<TData, TParams>) => void, initState?: Partial<UseRequestFetchState<TData, TParams>>);
/**
* set state
* @param currentState currentState
*/
setState(currentState?: Partial<UseRequestFetchState<TData, TParams>>): void;
/**
* should rename
* @param data Result value `unknown`
* @param key Result key `data`| `params` | `loading`| `error`
*/
setData(data: unknown, key?: keyof UseRequestFetchState<TData, TParams> | (keyof UseRequestFetchState<TData, TParams>)[]): void;
/**
*
* @param data Result value `unknown`
* @param key Result key `data`| `params` | `loading`| `error`
*/
setFetchState(data: unknown, key?: keyof UseRequestFetchState<TData, TParams> | (keyof UseRequestFetchState<TData, TParams>)[]): void;
/**
* Traverse the plugin that needs to be run,
* which is a callback function for the plugin to obtain fetch instances and execute plugin logic at the corresponding nodes.
*/
runPluginHandler(event: keyof UseRequestPluginReturn<TData, TParams>, ...rest: unknown[]): any;
runAsync(...params: TParams): Promise<TData>;
run(...params: TParams): void;
cancel(): void;
refresh(): void;
refreshAsync(): Promise<TData>;
mutate(data?: TData | ((oldData?: TData) => TData | undefined)): void;
}