UNPKG

@techsio/storefront-data

Version:

Medusa-first storefront data layer built on TanStack Query.

40 lines • 3.06 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 { CreateProductReviewInput, ProductReviewListInputBase, ProductReviewListResponse, ProductReviewMutationOptions, ProductReviewQueryKeys, ProductReviewService, UseCreateProductReviewResult, UseProductReviewsResult, UseSuspenseProductReviewsResult } from "./types"; type ProductReviewPrefetchHookOptions = { cacheStrategy?: CacheStrategy; defaultDelay?: number; skipIfCached?: boolean; skipMode?: PrefetchSkipMode; }; export type CreateProductReviewHooksConfig<TReview, TListInput extends ProductReviewListInputBase, TListParams, TCreateInput extends CreateProductReviewInput = CreateProductReviewInput> = { service: ProductReviewService<TReview, TListParams, TCreateInput>; buildListParams?: (input: TListInput) => TListParams; queryKeys?: ProductReviewQueryKeys<TListParams>; queryKeyNamespace?: QueryNamespace; cacheConfig?: CacheConfig; defaultPageSize?: number; }; export declare function createProductReviewHooks<TReview, TListInput extends ProductReviewListInputBase, TListParams, TCreateInput extends CreateProductReviewInput = CreateProductReviewInput>({ service, buildListParams, queryKeys, queryKeyNamespace, cacheConfig, defaultPageSize, }: CreateProductReviewHooksConfig<TReview, TListInput, TListParams, TCreateInput>): { getProductReviewsQueryOptions: (input: TListInput, options?: { queryOptions?: ReadQueryOptions<ProductReviewListResponse<TReview>> | undefined; cacheStrategy?: CacheStrategy; } | undefined) => import("../shared/hook-types").QueryFactoryOptions<ProductReviewListResponse<TReview>>; useProductReviews: (input: TListInput, options?: { queryOptions?: ReadQueryOptions<ProductReviewListResponse<TReview>>; }) => UseProductReviewsResult<TReview>; useSuspenseProductReviews: (input: TListInput, options?: { queryOptions?: SuspenseQueryOptions<ProductReviewListResponse<TReview>>; }) => UseSuspenseProductReviewsResult<TReview>; usePrefetchProductReviews: (options?: ProductReviewPrefetchHookOptions) => { cancelPrefetch: (prefetchId: string) => void; delayedPrefetch: (input: TListInput, delay?: number, prefetchId?: string) => string; prefetchProductReviews: (input: TListInput) => Promise<void>; }; useCreateProductReview: <TContext = unknown>(options?: ProductReviewMutationOptions<TReview, TCreateInput, TContext>) => UseCreateProductReviewResult<TReview, TCreateInput, TContext>; }; export type ProductReviewHooks<TReview, TListInput extends ProductReviewListInputBase, TListParams, TCreateInput extends CreateProductReviewInput = CreateProductReviewInput> = ReturnType<typeof createProductReviewHooks<TReview, TListInput, TListParams, TCreateInput>>; export {}; //# sourceMappingURL=hooks.d.ts.map