4
0
forked from crowetic/commerce

Updated Fetcher type

This commit is contained in:
Luis Alvarez 2021-02-08 18:00:48 -05:00
parent 8bf42c3b50
commit 82c5cd4aba
4 changed files with 7 additions and 5 deletions

View File

@ -28,7 +28,7 @@ async function getError(res: Response) {
return new FetcherError({ message: await getText(res), status: res.status }) return new FetcherError({ message: await getText(res), status: res.status })
} }
const fetcher: Fetcher<any> = async ({ const fetcher: Fetcher = async ({
url, url,
method = 'GET', method = 'GET',
variables, variables,

View File

@ -25,14 +25,14 @@ export type CommerceProps<P extends Provider> = {
config: CommerceConfig config: CommerceConfig
} }
export type CommerceConfig = { fetcher: Fetcher<any> } & Omit< export type CommerceConfig = { fetcher: Fetcher } & Omit<
CommerceContextValue<any>, CommerceContextValue<any>,
'providerRef' | 'fetcherRef' 'providerRef' | 'fetcherRef'
> >
export type CommerceContextValue<P extends Provider> = { export type CommerceContextValue<P extends Provider> = {
providerRef: MutableRefObject<P> providerRef: MutableRefObject<P>
fetcherRef: MutableRefObject<Fetcher<any>> fetcherRef: MutableRefObject<Fetcher>
locale: string locale: string
cartCookie: string cartCookie: string
} }

View File

@ -7,7 +7,9 @@ export type PickRequired<T, K extends keyof T> = Omit<T, K> &
Required<Pick<T, K>> Required<Pick<T, K>>
// Core fetcher added by CommerceProvider // Core fetcher added by CommerceProvider
export type Fetcher<T> = (options: FetcherOptions) => T | Promise<T> export type Fetcher<T = any, B = any> = (
options: FetcherOptions<B>
) => T | Promise<T>
export type FetcherOptions<Body = any> = { export type FetcherOptions<Body = any> = {
url?: string url?: string

View File

@ -32,7 +32,7 @@ export type UseData = <
'fetcher' 'fetcher'
>, >,
input: HookInput, input: HookInput,
fetcherFn: Fetcher<any> fetcherFn: Fetcher
) => ResponseState<Data> ) => ResponseState<Data>
const useData: UseData = (options, input, fetcherFn) => { const useData: UseData = (options, input, fetcherFn) => {