@techsio/storefront-data
Version:
Medusa-first storefront data layer built on TanStack Query.
40 lines • 3.06 kB
TypeScript
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