UNPKG

vue-bag-admin

Version:

Unified entry package for the Vue Bag Admin runtime ecosystem.

26 lines (25 loc) 1.2 kB
import { type ComputedRef, type ShallowRef } from 'vue'; type Awaitable<T> = T | Promise<T>; export type RequestStrategy = 'latest' | 'parallel' | 'block'; export type RequestService<TArgs extends unknown[] = unknown[], TResult = unknown> = (...args: TArgs) => Awaitable<TResult>; export interface UseRequestOptions<TData, TArgs extends unknown[]> { defaultData?: TData; strategy?: RequestStrategy; onSuccess?: (data: Awaited<TData>, params: TArgs) => void; onError?: (error: unknown, params: TArgs) => void; onFinally?: (params: TArgs) => void; } export interface UseRequestResult<TData, TArgs extends unknown[]> { loading: ComputedRef<boolean>; data: ShallowRef<Awaited<TData> | undefined>; error: ShallowRef<unknown>; run: (...args: TArgs) => Promise<Awaited<TData>>; refresh: () => Promise<Awaited<TData>>; cancel: (reason?: string) => void; reset: () => void; } export declare class RequestCanceledError extends Error { constructor(message?: string); } export declare const useRequest: <TArgs extends unknown[], TData>(service: RequestService<TArgs, TData>, options?: UseRequestOptions<TData, TArgs>) => UseRequestResult<TData, TArgs>; export {};