UNPKG

@pinia/colada-plugin-retry

Version:
70 lines (69 loc) 2.45 kB
import { ShallowRef } from "vue"; import { PiniaColadaPluginContext } from "@pinia/colada"; //#region src/retry.d.ts /** * Options for the Pinia Colada Retry plugin. */ interface RetryOptions { /** * The delay between retries. Can be a duration in ms or a function that * receives the attempt number (starts at 0) and returns a duration in ms. By * default, it will wait 2^attempt * 1000 ms, but never more than 30 seconds. * * @param attempt - * @returns */ delay?: number | ((attempt: number) => number); /** * The maximum number of times to retry the operation. Set to 0 to disable or * to Infinity to retry forever. It can also be a function that receives the * failure count and the error and returns if it should retry. Defaults to 3. * **Must be a positive number**. */ retry?: number | ((failureCount: number, error: unknown) => boolean); } interface RetryEntry { retryCount: number; timeoutId?: ReturnType<typeof setTimeout>; } /** * Plugin that adds the ability to retry failed queries. * * @param globalOptions - global options for the retries */ declare function PiniaColadaRetry(globalOptions?: RetryOptions): (context: PiniaColadaPluginContext) => void; declare module '@pinia/colada' { interface UseQueryOptions<TData, TError, TDataInitial> { /** * Options for the retries of this query added by `@pinia/colada-plugin-retry`. */ retry?: RetryOptions | Exclude<RetryOptions['retry'], undefined>; } interface UseQueryEntryExtensions<TData, TError, TDataInitial> { /** * Whether the query is currently retrying. Requires the `@pinia/colada-plugin-retry` plugin. */ isRetrying: ShallowRef<boolean>; /** * The number of retries that have been scheduled so far. Resets on success or manual refetch. * Requires the `@pinia/colada-plugin-retry` plugin. */ retryCount: ShallowRef<number>; /** * The error that triggered the current retry. `null` when not retrying or when retries are exhausted. * Requires the `@pinia/colada-plugin-retry` plugin. */ retryError: ShallowRef<TError | null>; /** * Plain object with retry state for devtools. Only present in development mode. */ retry?: { isRetrying: boolean; retryCount: number; retryError: unknown; }; } } //#endregion export { PiniaColadaRetry, RetryEntry, RetryOptions }; //# sourceMappingURL=index.d.mts.map