mirror of
https://github.com/vercel/commerce.git
synced 2025-07-23 04:36:49 +00:00
merge main (#1)
* Update README.md to include information on how to add a custom provider (#250) * Update README.md * Updated commerce readme Co-authored-by: Luis Alvarez D <luis@vercel.com> * Remove unused provider config (#459) * Updated core types for commerce provider * Updated bigcommerce provider * Added util method for provider creation * Removed unrequired code from saleor * Updated shopify provider * Updated providers and local setup * Updated saleor setup * Updated swell * Updated vendure * Updated swell-js usage * Removed unrequired import from saleor Co-authored-by: Isiko Saidiali <54436062+SaidiAli@users.noreply.github.com> Co-authored-by: Luis Alvarez D <luis@vercel.com>
This commit is contained in:
committed by
GitHub
parent
0e7e7b7d5f
commit
abaf7220dc
@@ -1,5 +1,5 @@
|
||||
import type { CommerceAPIConfig } from '@commerce/api'
|
||||
|
||||
import { CommerceAPI, CommerceAPIConfig, getCommerceApi as commerceApi } from '@commerce/api'
|
||||
import * as operations from './operations'
|
||||
import * as Const from '../const'
|
||||
|
||||
if (!Const.API_URL) {
|
||||
@@ -27,23 +27,12 @@ const config: SaleorConfig = {
|
||||
storeChannel: Const.API_CHANNEL,
|
||||
}
|
||||
|
||||
import {
|
||||
CommerceAPI,
|
||||
getCommerceApi as commerceApi,
|
||||
} from '@commerce/api'
|
||||
|
||||
import * as operations from './operations'
|
||||
|
||||
export interface ShopifyConfig extends CommerceAPIConfig {}
|
||||
|
||||
export const provider = { config, operations }
|
||||
|
||||
export type Provider = typeof provider
|
||||
|
||||
export type SaleorAPI<P extends Provider = Provider> = CommerceAPI<P>
|
||||
|
||||
export function getCommerceApi<P extends Provider>(
|
||||
customProvider: P = provider as any
|
||||
): SaleorAPI<P> {
|
||||
export function getCommerceApi<P extends Provider>(customProvider: P = provider as any): SaleorAPI<P> {
|
||||
return commerceApi(customProvider)
|
||||
}
|
||||
|
@@ -1,10 +1,6 @@
|
||||
import type { OperationContext } from '@commerce/api/operations'
|
||||
import {
|
||||
GetAllProductPathsQuery,
|
||||
GetAllProductPathsQueryVariables,
|
||||
ProductCountableEdge,
|
||||
} from '../../schema'
|
||||
import type { ShopifyConfig, Provider, SaleorConfig } from '..'
|
||||
import { ProductCountableEdge } from '../../schema'
|
||||
import type { Provider, SaleorConfig } from '..'
|
||||
|
||||
import { getAllProductsPathsQuery } from '../../utils/queries'
|
||||
import fetchAllProducts from '../utils/fetch-all-products'
|
||||
@@ -13,10 +9,7 @@ export type GetAllProductPathsResult = {
|
||||
products: Array<{ path: string }>
|
||||
}
|
||||
|
||||
export default function getAllProductPathsOperation({
|
||||
commerce,
|
||||
}: OperationContext<Provider>) {
|
||||
|
||||
export default function getAllProductPathsOperation({ commerce }: OperationContext<Provider>) {
|
||||
async function getAllProductPaths({
|
||||
query,
|
||||
config,
|
||||
@@ -24,7 +17,7 @@ export default function getAllProductPathsOperation({
|
||||
}: {
|
||||
query?: string
|
||||
config?: SaleorConfig
|
||||
variables?: any
|
||||
variables?: any
|
||||
} = {}): Promise<GetAllProductPathsResult> {
|
||||
config = commerce.getConfig(config)
|
||||
|
||||
@@ -39,7 +32,6 @@ export default function getAllProductPathsOperation({
|
||||
path: `/${slug}`,
|
||||
})),
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return getAllProductPaths
|
||||
|
@@ -1,32 +1,9 @@
|
||||
import * as React from 'react'
|
||||
import { ReactNode } from 'react'
|
||||
|
||||
import { CommerceConfig, CommerceProvider as CoreCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
|
||||
|
||||
import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
|
||||
import { saleorProvider, SaleorProvider } from './provider'
|
||||
import * as Const from './const'
|
||||
|
||||
export { saleorProvider }
|
||||
export type { SaleorProvider }
|
||||
|
||||
export const saleorConfig: CommerceConfig = {
|
||||
locale: 'en-us',
|
||||
cartCookie: Const.CHECKOUT_ID_COOKIE,
|
||||
}
|
||||
export const CommerceProvider = getCommerceProvider(saleorProvider)
|
||||
|
||||
export type SaleorConfig = Partial<CommerceConfig>
|
||||
|
||||
export type SaleorProps = {
|
||||
children?: ReactNode
|
||||
locale: string
|
||||
} & SaleorConfig
|
||||
|
||||
export function CommerceProvider({ children, ...config }: SaleorProps) {
|
||||
return (
|
||||
<CoreCommerceProvider provider={saleorProvider} config={{ ...saleorConfig, ...config }}>
|
||||
{children}
|
||||
</CoreCommerceProvider>
|
||||
)
|
||||
}
|
||||
|
||||
export const useCommerce = () => useCoreCommerce()
|
||||
export const useCommerce = () => useCoreCommerce<SaleorProvider>()
|
||||
|
@@ -1,3 +1,4 @@
|
||||
import { CHECKOUT_ID_COOKIE } from './const'
|
||||
import { handler as useCart } from './cart/use-cart'
|
||||
import { handler as useAddItem } from './cart/use-add-item'
|
||||
import { handler as useUpdateItem } from './cart/use-update-item'
|
||||
@@ -14,8 +15,7 @@ import fetcher from './fetcher'
|
||||
|
||||
export const saleorProvider = {
|
||||
locale: 'en-us',
|
||||
cartCookie: '',
|
||||
cartCookieToken: '',
|
||||
cartCookie: CHECKOUT_ID_COOKIE,
|
||||
fetcher,
|
||||
cart: { useCart, useAddItem, useUpdateItem, useRemoveItem },
|
||||
customer: { useCustomer },
|
||||
|
Reference in New Issue
Block a user