UNPKG

cf-workers-query

Version:

Automatically cache and revalidate data in Cloudflare Workers. Using the Cache API and Execution Context

50 lines (47 loc) 1.82 kB
type CachePayload<Data = unknown> = { data: Data; lastModified: number; maxAge: number; }; type QueryKey = ReadonlyArray<unknown> | URL; declare class CacheApiAdaptor { private cacheName; private maxAge; constructor(ctx?: { cacheName?: string; maxAge?: number; }); retrieve<Data = unknown>(key: QueryKey): Promise<CachePayload<Data> | null>; update<Data = unknown>(key: QueryKey, value: Data | Response, options?: { maxAge?: number; }): Promise<void>; delete(key: QueryKey): Promise<void>; /** * Builds the full cache key for the suspense cache. * * @param key Key for the item in the suspense cache. * @returns The fully-formed cache key for the suspense cache. */ buildCacheKey(key: ReadonlyArray<unknown>): string; } type RetryDelay<Error = unknown> = number | ((failureCount: number, error: Error) => number); type CreateQuery<Data = unknown, Error = unknown> = { queryKey?: QueryKey | null; queryFn: () => Promise<Data>; staleTime?: number; gcTime?: number; revalidate?: boolean; retry?: number | ((failureCount: number, error: Error) => boolean); retryDelay?: RetryDelay<Error>; cacheName?: string; throwOnError?: boolean; enabled?: boolean | ((data: Data) => boolean); revalidateMode?: 'default' | 'probabilistic'; }; declare const createQuery: <Data = unknown, Error = unknown>({ queryKey, queryFn, gcTime, staleTime, revalidate, retry, retryDelay, cacheName, throwOnError, enabled, revalidateMode, }: CreateQuery<Data, Error>) => Promise<{ data: Data | null; error: Error | null; invalidate: () => Promise<void> | void; lastModified: number | null; }>; export { CacheApiAdaptor as C, type QueryKey as Q, type CreateQuery as a, createQuery as c };