Merge branch 'custom-checkout' of https://github.com/vercel/commerce into custom-checkout

This commit is contained in:
Bel Curcio 2021-06-14 18:00:47 -03:00
commit f01ebc549f
2 changed files with 30 additions and 32 deletions

View File

@ -1,6 +1,6 @@
import type { APIProvider, CommerceAPIConfig } from '@commerce/api' import type { CommerceAPI, CommerceAPIConfig } from '@commerce/api'
import { CommerceAPI, getCommerceApi as commerceApi } from '@commerce/api' import { getCommerceApi as commerceApi } from '@commerce/api'
import fetcher from './utils/fetch-local' import createFetcher from './utils/fetch-local'
import getAllPages from './operations/get-all-pages' import getAllPages from './operations/get-all-pages'
import getPage from './operations/get-page' import getPage from './operations/get-page'
@ -17,7 +17,7 @@ const config: LocalConfig = {
cartCookie: '', cartCookie: '',
customerCookie: '', customerCookie: '',
cartCookieMaxAge: 2592000, cartCookieMaxAge: 2592000,
fetch: fetcher, fetch: createFetcher(() => getCommerceApi().getConfig()),
} }
const operations = { const operations = {

View File

@ -1,36 +1,34 @@
import { FetcherError } from '@commerce/utils/errors' import { FetcherError } from '@commerce/utils/errors'
import type { GraphQLFetcher } from '@commerce/api' import type { GraphQLFetcher } from '@commerce/api'
import { getCommerceApi } from '../index' import type { LocalConfig } from '../index'
import fetch from './fetch' import fetch from './fetch'
const fetchGraphqlApi: GraphQLFetcher = async ( const fetchGraphqlApi: (getConfig: () => LocalConfig) => GraphQLFetcher =
query: string, (getConfig) =>
{ variables, preview } = {}, async (query: string, { variables, preview } = {}, fetchOptions) => {
fetchOptions const config = getConfig()
) => { const res = await fetch(config.commerceUrl, {
const config = getCommerceApi().getConfig() ...fetchOptions,
const res = await fetch(config.commerceUrl, { method: 'POST',
...fetchOptions, headers: {
method: 'POST', ...fetchOptions?.headers,
headers: { 'Content-Type': 'application/json',
...fetchOptions?.headers, },
'Content-Type': 'application/json', body: JSON.stringify({
}, query,
body: JSON.stringify({ variables,
query, }),
variables,
}),
})
const json = await res.json()
if (json.errors) {
throw new FetcherError({
errors: json.errors ?? [{ message: 'Failed to fetch for API' }],
status: res.status,
}) })
const json = await res.json()
if (json.errors) {
throw new FetcherError({
errors: json.errors ?? [{ message: 'Failed to fetch for API' }],
status: res.status,
})
}
return { data: json.data, res }
} }
return { data: json.data, res }
}
export default fetchGraphqlApi export default fetchGraphqlApi