UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

58 lines • 3.65 kB
import { type CacheConfig, type CacheStrategy } from "../shared/cache-config"; import type { ReadQueryOptions, SuspenseQueryOptions } from "../shared/hook-types"; import type { PrefetchSkipMode } from "../shared/prefetch"; import type { QueryNamespace } from "../shared/query-keys"; import type { RegionDetailInputBase, RegionListInputBase, RegionListResponse, RegionQueryKeys, RegionService, UseRegionResult, UseRegionsResult, UseSuspenseRegionResult, UseSuspenseRegionsResult } from "./types"; export type CreateRegionHooksConfig<TRegion, TListInput extends RegionListInputBase, TListParams, TDetailInput extends RegionDetailInputBase, TDetailParams> = { service: RegionService<TRegion, TListParams, TDetailParams>; buildListParams?: (input: TListInput) => TListParams; buildDetailParams?: (input: TDetailInput) => TDetailParams; queryKeys?: RegionQueryKeys<TListParams, TDetailParams>; queryKeyNamespace?: QueryNamespace; cacheConfig?: CacheConfig; defaultPageSize?: number; }; export declare function createRegionHooks<TRegion, TListInput extends RegionListInputBase, TListParams, TDetailInput extends RegionDetailInputBase, TDetailParams>({ service, buildListParams, buildDetailParams, queryKeys, queryKeyNamespace, cacheConfig, defaultPageSize, }: CreateRegionHooksConfig<TRegion, TListInput, TListParams, TDetailInput, TDetailParams>): { getListQueryOptions: (input: TListInput, options?: { queryOptions?: ReadQueryOptions<RegionListResponse<TRegion>> | undefined; cacheStrategy?: CacheStrategy; } | undefined) => import("../shared/hook-types").QueryFactoryOptions<RegionListResponse<TRegion>>; getDetailQueryOptions: (input: TDetailInput, options?: { queryOptions?: ReadQueryOptions<TRegion | null> | undefined; cacheStrategy?: CacheStrategy; } | undefined) => import("../shared/hook-types").QueryFactoryOptions<TRegion | null>; useRegions: (input: TListInput, options?: { queryOptions?: ReadQueryOptions<RegionListResponse<TRegion>>; }) => UseRegionsResult<TRegion>; useSuspenseRegions: (input: TListInput, options?: { queryOptions?: SuspenseQueryOptions<RegionListResponse<TRegion>>; }) => UseSuspenseRegionsResult<TRegion>; useRegion: (input: TDetailInput, options?: { queryOptions?: ReadQueryOptions<TRegion | null>; }) => UseRegionResult<TRegion>; useSuspenseRegion: (input: TDetailInput, options?: { queryOptions?: SuspenseQueryOptions<TRegion | null>; }) => UseSuspenseRegionResult<TRegion>; usePrefetchRegions: (options?: { cacheStrategy?: CacheStrategy; defaultDelay?: number; skipIfCached?: boolean; skipMode?: PrefetchSkipMode; }) => { prefetchRegions: (input: TListInput) => Promise<void>; delayedPrefetch: (input: TListInput, delay?: number, prefetchId?: string) => string; cancelPrefetch: (prefetchId: string) => void; }; usePrefetchRegion: (options?: { cacheStrategy?: CacheStrategy; defaultDelay?: number; skipIfCached?: boolean; skipMode?: PrefetchSkipMode; }) => { prefetchRegion: (input: TDetailInput) => Promise<void>; delayedPrefetch: (input: TDetailInput, delay?: number, prefetchId?: string) => string; cancelPrefetch: (prefetchId: string) => void; }; }; export type RegionHooks<TRegion, TListInput extends RegionListInputBase, TListParams, TDetailInput extends RegionDetailInputBase, TDetailParams> = ReturnType<typeof createRegionHooks<TRegion, TListInput, TListParams, TDetailInput, TDetailParams>>; //# sourceMappingURL=hooks.d.ts.map