UNPKG

vue2-request-utils

Version:

Vue 3 composition API for data fetching. This is a version for Vue 2 by using @vue/composition-api.

29 lines (28 loc) 1.23 kB
import { Ref } from "@vue/composition-api"; import { Config } from "./config"; import { Queries } from "./useAsyncQuery"; import { UnWrapRefObject } from "./utils/types"; declare type MutateData<R> = (newData: R) => void; declare type MutateFunction<R> = (arg: (oldData: R) => R) => void; export declare type Query<R, P extends unknown[]> = (...args: P) => Promise<R>; export interface Mutate<R> extends MutateData<R>, MutateFunction<R> { } export declare type State<R, P extends unknown[]> = { loading: Ref<boolean>; data: Ref<R | undefined>; error: Ref<Error | undefined>; params: Ref<P>; }; export declare type InnerRunReturn<R> = Promise<R | null>; export interface QueryState<R, P extends unknown[]> extends State<R, P> { queries: Queries<R, P>; run: (...arg: P) => InnerRunReturn<R>; cancel: () => void; refresh: () => InnerRunReturn<R>; mutate: Mutate<R>; } export interface InnerQueryState<R, P extends unknown[]> extends Omit<QueryState<R, P>, "queries"> { unmount: () => void; } declare const createQuery: <R, P extends unknown[]>(query: Query<R, P>, config: Config<R, P>, initialState?: UnWrapRefObject<State<R, P>> | undefined) => InnerQueryState<R, P>; export default createQuery;