Skip to content

API reference > @kontsedal/olas-core > QuerySpec

QuerySpec type ​

Configuration passed to defineQuery({ ... }). The Args tuple is what callers pass as cache keys and to the fetcher. Spec §20.4.

The fetcher's first argument is a FetchCtx (signal + deps); positional cache args come after. This shape lets module-scoped queries readctx.deps.api etc. — no setApiForQuery(api) module-level capture needed.

Signature:

typescript
type QuerySpec<Args extends unknown[], T> = {
  id: string;
  key: (...args: Args) => unknown[];
  fetcher: (ctx: FetchCtx, ...args: Args) => Promise<T>;
  staleTime?: number;
  gcTime?: number;
  refetchInterval?: RefetchInterval<T>;
  refetchOnWindowFocus?: boolean;
  refetchOnReconnect?: boolean;
  keepPreviousData?: boolean;
  retry?: RetryPolicy;
  retryDelay?: RetryDelay;
  networkMode?: NetworkMode;
  structuralShare?: boolean;
  meta?: QueryMeta;
};

References: FetchCtx, RefetchInterval, RetryPolicy, RetryDelay, NetworkMode, QueryMeta

Released under the MIT License.