@techsio/storefront-data
Version:
Medusa-first storefront data layer built on TanStack Query.
48 lines • 1.73 kB
TypeScript
import type { QueryResult, ReadResultBase, SuspenseQueryResult, SuspenseResultBase } from "../shared/hook-result-types";
import type { QueryKey } from "../shared/query-keys";
export type RegionListInputBase = {
page?: number;
limit?: number;
offset?: number;
enabled?: boolean;
};
export type RegionDetailInputBase = {
id?: string;
enabled?: boolean;
};
export type RegionListResponse<TRegion> = {
regions: TRegion[];
count?: number;
};
export type RegionService<TRegion, TListParams, TDetailParams> = {
getRegions: (params: TListParams, signal?: AbortSignal) => Promise<RegionListResponse<TRegion>>;
getRegion: (params: TDetailParams, signal?: AbortSignal) => Promise<TRegion | null>;
};
export type RegionQueryKeys<TListParams, TDetailParams> = {
all: () => QueryKey;
list: (params: TListParams) => QueryKey;
detail: (params: TDetailParams) => QueryKey;
};
export type UseRegionsResult<TRegion> = ReadResultBase<QueryResult<RegionListResponse<TRegion>>> & {
regions: TRegion[];
totalCount: number;
currentPage: number;
totalPages: number;
hasNextPage: boolean;
hasPrevPage: boolean;
};
export type UseSuspenseRegionsResult<TRegion> = SuspenseResultBase<SuspenseQueryResult<RegionListResponse<TRegion>>> & {
regions: TRegion[];
totalCount: number;
currentPage: number;
totalPages: number;
hasNextPage: boolean;
hasPrevPage: boolean;
};
export type UseRegionResult<TRegion> = ReadResultBase<QueryResult<TRegion | null>> & {
region: TRegion | null;
};
export type UseSuspenseRegionResult<TRegion> = SuspenseResultBase<SuspenseQueryResult<TRegion | null>> & {
region: TRegion | null;
};
//# sourceMappingURL=types.d.ts.map