mirror of
https://github.com/vercel/commerce.git
synced 2025-07-24 02:31:24 +00:00
.vscode
assets
components
config
framework
bigcommerce
commerce
local
saleor
shopify
api
endpoints
operations
utils
index.ts
auth
cart
customer
product
types
utils
wishlist
.env.template
README.md
codegen.json
commerce.config.json
const.ts
fetcher.ts
index.tsx
next.config.js
provider.ts
schema.d.ts
schema.graphql
swell
vendure
lib
pages
public
.editorconfig
.env.template
.gitignore
.prettierignore
.prettierrc
README.md
codegen.bigcommerce.json
codegen.json
commerce.config.json
global.d.ts
license.md
next-env.d.ts
next.config.js
package.json
postcss.config.js
swell-js.d.ts
tailwind.config.js
tsconfig.json
yarn.lock
* Adding multiple initial files * Updated the default cart endpoint * Fixes * Updated CommerceAPI class for better usage * Adding more migration changes * Taking multiple steps into better API types * Adding more experimental types * Removed many testing types * Adding types, fixes and other updates * Updated commerce types * Updated types for hooks now using the API * Updated mutation types * Simplified cart types for the provider * Updated cart hooks * Remove normalizers from the hooks * Updated cart endpoint * Removed cart handlers * bug fixes * Improve quantity input behavior in cart item * Removed endpoints folder * Making progress on api operations * Moved method * Moved types * Changed the way ops are created * Added customer endpoint * Login endpoint * Added logout endpoint * Add missing logout files * Added signup endpoint * Removed customers old endpoints * Moved endpoints to nested folder * Removed old customer endpoint builders * Updated login operation * Updated login operation * Added getAllPages operation * Renamed endpoint operations to handlers * Changed import * Renamed operations to handlers in usage * Moved getAllPages everywhere * Moved getPage * Updated getPage usage * Moved getSiteInfo * Added def types for product * Updated type * moved products catalog endpoint * removed old catalog endpoint * Moved wishlist * Removed commerce.endpoint * Replaced references to commerce.endpoint * Updated catalog products * Moved checkout api * Added the get customer wishlist operation * Removed old wishlist stuff * Added getAllProductPaths operation * updated reference to operation * Moved getAllProducts * Updated getProduct operation * Removed old getConfig and references * Removed is-allowed-method from BC * Updated types for auth hooks * Updated useCustomer and core types * Updated useData and util hooks * Updated useSearch hook * Updated types for useWishlist * Added index for types * Fixes * Updated urls to the API * Renamed fetchInput to fetcherInput * Updated fetch type * Fixes in search hook * Updated Shopify Provider Structure (#340) * Add codegen, update fragments & schemas * Update checkout-create.ts * Update checkout-create.ts * Update README.md * Update product mutations & queries * Uptate customer fetch types * Update schemas * Start updates * Moved Page, AllPages & Site Info * Moved product, all products (paths) * Add translations, update operations & fixes * Update api endpoints, types & fixes * Add api checkout endpoint * Updates * Fixes * Update commerce.config.json Co-authored-by: B <curciobelen@gmail.com> * Added category type and normalizer * updated init script to exclude other providers * Excluded swell and venture temporarily * Fix category & color normalization * Fixed category normalizer in shopify * Don't use getSlug for category on /search * Update colors.ts Co-authored-by: cond0r <pinte_catalin@yahoo.com> Co-authored-by: B <curciobelen@gmail.com>
56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
import {
|
|
CommerceAPI,
|
|
CommerceAPIConfig,
|
|
getCommerceApi as commerceApi,
|
|
} from '@commerce/api'
|
|
|
|
import {
|
|
API_URL,
|
|
API_TOKEN,
|
|
SHOPIFY_CUSTOMER_TOKEN_COOKIE,
|
|
SHOPIFY_CHECKOUT_ID_COOKIE,
|
|
} from '../const'
|
|
|
|
import fetchGraphqlApi from './utils/fetch-graphql-api'
|
|
|
|
import * as operations from './operations'
|
|
|
|
if (!API_URL) {
|
|
throw new Error(
|
|
`The environment variable NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN is missing and it's required to access your store`
|
|
)
|
|
}
|
|
|
|
if (!API_TOKEN) {
|
|
throw new Error(
|
|
`The environment variable NEXT_PUBLIC_SHOPIFY_STOREFRONT_ACCESS_TOKEN is missing and it's required to access your store`
|
|
)
|
|
}
|
|
export interface ShopifyConfig extends CommerceAPIConfig {}
|
|
|
|
const ONE_DAY = 60 * 60 * 24
|
|
|
|
const config: ShopifyConfig = {
|
|
commerceUrl: API_URL,
|
|
apiToken: API_TOKEN,
|
|
customerCookie: SHOPIFY_CUSTOMER_TOKEN_COOKIE,
|
|
cartCookie: SHOPIFY_CHECKOUT_ID_COOKIE,
|
|
cartCookieMaxAge: ONE_DAY * 30,
|
|
fetch: fetchGraphqlApi,
|
|
}
|
|
|
|
export const provider = {
|
|
config,
|
|
operations,
|
|
}
|
|
|
|
export type Provider = typeof provider
|
|
|
|
export type ShopifyAPI<P extends Provider = Provider> = CommerceAPI<P>
|
|
|
|
export function getCommerceApi<P extends Provider>(
|
|
customProvider: P = provider as any
|
|
): ShopifyAPI<P> {
|
|
return commerceApi(customProvider)
|
|
}
|