@oiij/naive-ui
Version:
Some Composable Functions And Components for Vue 3
61 lines (60 loc) • 2.43 kB
TypeScript
import * as _vueuse_core0 from "@vueuse/core";
import * as vue2 from "vue";
import { UseRequestOptions, UseRequestPlugin } from "vue-hooks-plus/es/useRequest/types";
//#region src/composables/useDataRequest.d.ts
type DataObject = Record<string, any>;
type DataRequestFields = Record<string, string | undefined> & {
page?: string;
pageSize?: string;
list?: string;
count?: string;
rowKey?: string;
};
type UseDataRequestOptions<P extends DataObject = DataObject, D extends DataObject = DataObject> = {
defaultParams?: Partial<P>;
manual?: boolean;
fields?: DataRequestFields;
requestOptions?: UseRequestOptions<D, P[]>;
requestPlugins?: UseRequestPlugin<D, P[]>[];
};
type UseDataRequestPagination = {
page: number;
pageSize: number;
itemCount: number;
};
declare function useDataRequest<P extends DataObject = DataObject, D extends DataObject = DataObject, R extends DataObject = DataObject>(api: (...args: P[]) => Promise<D>, options?: UseDataRequestOptions<P, D>): {
loading: Readonly<vue2.Ref<boolean, boolean>>;
data: Readonly<vue2.Ref<D | undefined, D | undefined>>;
error: Readonly<vue2.Ref<Error | undefined, Error | undefined>>;
params: Readonly<vue2.Ref<[] | P[], [] | P[]>>;
list: vue2.ComputedRef<R[]>;
pagination: vue2.Ref<{
page: number;
pageSize: number;
itemCount: number;
}, {
page: number;
pageSize: number;
itemCount: number;
} | {
page: number;
pageSize: number;
itemCount: number;
}>;
run: (...params: P[]) => void;
runAsync: (...params: P[]) => Promise<D>;
refresh: () => void;
refreshAsync: () => Promise<D>;
cancel: () => void;
mutate: (data?: D | ((oldData?: D | undefined) => D | undefined) | undefined) => void;
setParams: (_params: Partial<P>) => void;
runParams: (_params: Partial<P>) => void;
runParamsAsync: (_params: Partial<P>) => Promise<D>;
onBefore: _vueuse_core0.EventHookOn<[P[]]>;
onSuccess: _vueuse_core0.EventHookOn<[D, P[]]>;
onError: _vueuse_core0.EventHookOn<[Error, P[]]>;
onFinally: _vueuse_core0.EventHookOn<[P[], D | undefined, Error | undefined]>;
};
type UseDataRequestReturns<P extends DataObject = DataObject, D extends DataObject = DataObject, R extends DataObject = DataObject> = ReturnType<typeof useDataRequest<P, D, R>>;
//#endregion
export { DataObject, DataRequestFields, UseDataRequestOptions, UseDataRequestPagination, UseDataRequestReturns, useDataRequest };