refactor: 💡 update commercelayer provider structure

This commit is contained in:
Bolaji 2022-02-28 15:36:23 +01:00
parent 7e5896e4a5
commit e8a12e4864
No known key found for this signature in database
GPG Key ID: 00342E72694643BB
67 changed files with 12329 additions and 7002 deletions

8071
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,2 @@
node_modules
dist

View File

@ -0,0 +1,7 @@
{
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"useTabs": false
}

View File

@ -0,0 +1,82 @@
{
"name": "@vercel/commerce-commercelayer",
"version": "0.0.1",
"license": "MIT",
"scripts": {
"release": "taskr release",
"build": "taskr build",
"dev": "taskr",
"types": "tsc --emitDeclarationOnly",
"prettier-fix": "prettier --write ."
},
"sideEffects": false,
"type": "module",
"exports": {
".": "./dist/index.js",
"./*": [
"./dist/*.js",
"./dist/*/index.js"
],
"./next.config": "./dist/next.config.cjs"
},
"typesVersions": {
"*": {
"*": [
"src/*",
"src/*/index"
],
"next.config": [
"dist/next.config.d.cts"
]
}
},
"files": [
"dist"
],
"publishConfig": {
"typesVersions": {
"*": {
"*": [
"dist/*.d.ts",
"dist/*/index.d.ts"
],
"next.config": [
"dist/next.config.d.cts"
]
}
}
},
"dependencies": {
"@vercel/commerce": "^0.0.1",
"@vercel/fetch": "^6.1.1",
"@commercelayer/js-sdk": "^4.1.4",
"@commercelayer/js-auth": "^3.0.0"
},
"peerDependencies": {
"next": "^12",
"react": "^17",
"react-dom": "^17"
},
"devDependencies": {
"@taskr/clear": "^1.1.0",
"@taskr/esnext": "^1.1.0",
"@taskr/watch": "^1.1.0",
"@types/node": "^17.0.8",
"@types/react": "^17.0.38",
"lint-staged": "^12.1.7",
"next": "^12.0.8",
"prettier": "^2.5.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"taskr": "^1.1.0",
"taskr-swc": "^0.0.1",
"typescript": "^4.5.4"
},
"lint-staged": {
"**/*.{js,jsx,ts,tsx,json}": [
"prettier --write",
"git add"
]
}
}

View File

@ -1,2 +0,0 @@
export * from '@commerce/product/use-price'
export { default } from '@commerce/product/use-price'

View File

@ -1,5 +1,5 @@
import type { CommerceAPI, CommerceAPIConfig } from '@commerce/api' import type { CommerceAPI, CommerceAPIConfig } from '@vercel/commerce/api'
import { getCommerceApi as commerceApi } from '@commerce/api' import { getCommerceApi as commerceApi } from '@vercel/commerce/api'
import createFetcher from './utils/fetch-local' import createFetcher from './utils/fetch-local'
import getAllPages from './operations/get-all-pages' import getAllPages from './operations/get-all-pages'

View File

@ -1,6 +1,6 @@
import { Product } from '@commerce/types/product' import { Product } from '@vercel/commerce/types/product'
import { GetAllProductsOperation } from '@commerce/types/product' import { GetAllProductsOperation } from '@vercel/commerce/types/product'
import type { OperationContext } from '@commerce/api/operations' import type { OperationContext } from '@vercel/commerce/api/operations'
import type { CommercelayerConfig } from '../index' import type { CommercelayerConfig } from '../index'
import data from '../../data.json' import data from '../../data.json'
import { Price } from '@commercelayer/js-sdk' import { Price } from '@commercelayer/js-sdk'

View File

@ -1,7 +1,7 @@
import type { CommercelayerConfig } from '../index' import type { CommercelayerConfig } from '../index'
import { Product } from '@commerce/types/product' import { Product } from '@vercel/commerce/types/product'
import { GetProductOperation } from '@commerce/types/product' import { GetProductOperation } from '@vercel/commerce/types/product'
import type { OperationContext } from '@commerce/api/operations' import type { OperationContext } from '@vercel/commerce/api/operations'
import data from '../../data.json' import data from '../../data.json'
export default function getProductOperation({ export default function getProductOperation({

View File

@ -1,5 +1,5 @@
import { OperationContext } from '@commerce/api/operations' import { OperationContext } from '@vercel/commerce/api/operations'
import { Category } from '@commerce/types/site' import { Category } from '@vercel/commerce/types/site'
import { CommercelayerConfig } from '../index' import { CommercelayerConfig } from '../index'
export type GetSiteInfoResult< export type GetSiteInfoResult<

View File

@ -1,5 +1,5 @@
import { FetcherError } from '@commerce/utils/errors' import { FetcherError } from '@vercel/commerce/utils/errors'
import type { GraphQLFetcher } from '@commerce/api' import type { GraphQLFetcher } from '@vercel/commerce/api'
import type { CommercelayerConfig } from '../index' import type { CommercelayerConfig } from '../index'
import fetch from './fetch' import fetch from './fetch'

View File

@ -1,8 +1,8 @@
import { useCallback } from 'react' import { useCallback } from 'react'
import useCustomer from '../customer/use-customer' import useCustomer from '../customer/use-customer'
import { MutationHook } from '@commerce/utils/types' import { MutationHook } from '@vercel/commerce/utils/types'
import useLogin, { UseLogin } from '@commerce/auth/use-login' import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login'
import { CommerceError } from '@commerce/utils/errors' import { CommerceError } from '@vercel/commerce/utils/errors'
import { getCustomerToken } from '@commercelayer/js-auth' import { getCustomerToken } from '@commercelayer/js-auth'
import setCookie from '../api/utils/cookies' import setCookie from '../api/utils/cookies'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'

View File

@ -1,6 +1,6 @@
import { useCallback } from 'react' import { useCallback } from 'react'
import { MutationHook } from '@commerce/utils/types' import { MutationHook } from '@vercel/commerce/utils/types'
import useLogout, { UseLogout } from '@commerce/auth/use-logout' import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import { useCustomer } from '../customer' import { useCustomer } from '../customer'

View File

@ -1,8 +1,8 @@
import { useCallback } from 'react' import { useCallback } from 'react'
import useCustomer from '../customer/use-customer' import useCustomer from '../customer/use-customer'
import { MutationHook } from '@commerce/utils/types' import { MutationHook } from '@vercel/commerce/utils/types'
import useSignup, { UseSignup } from '@commerce/auth/use-signup' import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup'
import { CommerceError } from '@commerce/utils/errors' import { CommerceError } from '@vercel/commerce/utils/errors'
import { getCustomerToken } from '@commercelayer/js-auth' import { getCustomerToken } from '@commercelayer/js-auth'
import setCookie from '../api/utils/cookies' import setCookie from '../api/utils/cookies'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'

View File

@ -1,5 +1,5 @@
import useAddItem, { UseAddItem } from '@commerce/cart/use-add-item' import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item'
import { MutationHook } from '@commerce/utils/types' import { MutationHook } from '@vercel/commerce/utils/types'
import { LineItem, Order } from '@commercelayer/js-sdk' import { LineItem, Order } from '@commercelayer/js-sdk'
import getCredentials from '../api/utils/getCredentials' import getCredentials from '../api/utils/getCredentials'
import useCart from '../cart/use-cart' import useCart from '../cart/use-cart'

View File

@ -1,6 +1,6 @@
import { useMemo } from 'react' import { useMemo } from 'react'
import { SWRHook } from '@commerce/utils/types' import { SWRHook } from '@vercel/commerce/utils/types'
import useCart, { UseCart } from '@commerce/cart/use-cart' import useCart, { UseCart } from '@vercel/commerce/cart/use-cart'
import { Order } from '@commercelayer/js-sdk' import { Order } from '@commercelayer/js-sdk'
import getCredentials from '../api/utils/getCredentials' import getCredentials from '../api/utils/getCredentials'
import normalizeLineItems from '../api/utils/normalizeLineItems' import normalizeLineItems from '../api/utils/normalizeLineItems'

View File

@ -1,8 +1,8 @@
import { MutationHook } from '@commerce/utils/types' import { MutationHook } from '@vercel/commerce/utils/types'
import useRemoveItem, { UseRemoveItem } from '@commerce/cart/use-remove-item' import useRemoveItem, { UseRemoveItem } from '@vercel/commerce/cart/use-remove-item'
import getCredentials from '../api/utils/getCredentials' import getCredentials from '../api/utils/getCredentials'
import { LineItem } from '@commercelayer/js-sdk' import { LineItem } from '@commercelayer/js-sdk'
import useCart from '../cart/use-cart' import useCart from './use-cart'
export default useRemoveItem as UseRemoveItem<typeof handler> export default useRemoveItem as UseRemoveItem<typeof handler>

View File

@ -1,5 +1,5 @@
import { MutationHook } from '@commerce/utils/types' import { MutationHook } from '@vercel/commerce/utils/types'
import useUpdateItem, { UseUpdateItem } from '@commerce/cart/use-update-item' import useUpdateItem, { UseUpdateItem } from '@vercel/commerce/cart/use-update-item'
import useCart from '../cart/use-cart' import useCart from '../cart/use-cart'
import getCredentials from '../api/utils/getCredentials' import getCredentials from '../api/utils/getCredentials'
import { LineItem } from '@commercelayer/js-sdk' import { LineItem } from '@commercelayer/js-sdk'

View File

@ -1,5 +1,5 @@
import { SWRHook } from '@commerce/utils/types' import { SWRHook } from '@vercel/commerce/utils/types'
import useCheckout, { UseCheckout } from '@commerce/checkout/use-checkout' import useCheckout, { UseCheckout } from '@vercel/commerce/checkout/use-checkout'
export default useCheckout as UseCheckout<typeof handler> export default useCheckout as UseCheckout<typeof handler>

View File

@ -1,5 +1,5 @@
import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item' import useAddItem, { UseAddItem } from '@vercel/commerce/customer/address/use-add-item'
import { MutationHook } from '@commerce/utils/types' import { MutationHook } from '@vercel/commerce/utils/types'
export default useAddItem as UseAddItem<typeof handler> export default useAddItem as UseAddItem<typeof handler>

View File

@ -1,5 +1,5 @@
import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item' import useAddItem, { UseAddItem } from '@vercel/commerce/customer/card/use-add-item'
import { MutationHook } from '@commerce/utils/types' import { MutationHook } from '@vercel/commerce/utils/types'
export default useAddItem as UseAddItem<typeof handler> export default useAddItem as UseAddItem<typeof handler>

View File

@ -1,6 +1,6 @@
import { SWRHook } from '@commerce/utils/types' import { SWRHook } from '@vercel/commerce/utils/types'
import { CustomerHook } from '@commerce/types/customer' import { CustomerHook } from '@vercel/commerce/types/customer'
import useCustomer, { UseCustomer } from '@commerce/customer/use-customer' import useCustomer, { UseCustomer } from '@vercel/commerce/customer/use-customer'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import { ENDPOINT } from '../const' import { ENDPOINT } from '../const'

View File

@ -1,4 +1,4 @@
import { Fetcher } from '@commerce/utils/types' import { Fetcher } from '@vercel/commerce/utils/types'
import handleFetchResponse from './utils/handle-fetch-response' import handleFetchResponse from './utils/handle-fetch-response'
import { getSalesChannelToken } from '@commercelayer/js-auth' import { getSalesChannelToken } from '@commercelayer/js-auth'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'

View File

@ -5,7 +5,7 @@ import {
CommerceConfig, CommerceConfig,
CoreCommerceProvider, CoreCommerceProvider,
useCommerce as useCoreCommerce, useCommerce as useCoreCommerce,
} from '@commerce' } from '@vercel/commerce'
import useToken from './auth/use-token' import useToken from './auth/use-token'
export const commercelayerConfig: CommerceConfig = { export const commercelayerConfig: CommerceConfig = {

View File

@ -0,0 +1,2 @@
export * from '@vercel/commerce/product/use-price'
export { default } from '@vercel/commerce/product/use-price'

View File

@ -1,5 +1,5 @@
import { SWRHook } from '@commerce/utils/types' import { SWRHook } from '@vercel/commerce/utils/types'
import useSearch, { UseSearch } from '@commerce/product/use-search' import useSearch, { UseSearch } from '@vercel/commerce/product/use-search'
import data from '../data.json' import data from '../data.json'
export default useSearch as UseSearch<typeof handler> export default useSearch as UseSearch<typeof handler>

View File

@ -1,4 +1,4 @@
import { FetcherError } from '@commerce/utils/errors' import { FetcherError } from '@vercel/commerce/utils/errors'
export function getError(errors: any[], status: number) { export function getError(errors: any[], status: number) {
errors = errors ?? [{ message: 'Failed to fetch Commerce Layer API' }] errors = errors ?? [{ message: 'Failed to fetch Commerce Layer API' }]

View File

@ -1,5 +1,5 @@
import { HookFetcher } from '@commerce/utils/types' import { HookFetcher } from '@vercel/commerce/utils/types'
import type { Product } from '@commerce/types/product' import type { Product } from '@vercel/commerce/types/product'
import data from '../data.json' import data from '../data.json'
import { useCustomer } from '../customer' import { useCustomer } from '../customer'

View File

@ -0,0 +1,21 @@
export async function build(task, opts) {
await task
.source('src/**/*.+(ts|tsx|js)')
.swc({ dev: opts.dev, outDir: 'dist', baseUrl: 'src' })
.target('dist')
.source('src/**/*.+(cjs|json)')
.target('dist')
task.$.log('Compiled src files')
}
export async function release(task) {
await task.clear('dist').start('build')
}
export default async function dev(task) {
const opts = { dev: true }
await task.clear('dist')
await task.start('build', opts)
await task.watch('src/**/*.+(ts|tsx|js|cjs|json)', 'build', opts)
}

View File

@ -0,0 +1,22 @@
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"outDir": "dist",
"baseUrl": "src",
"lib": ["dom", "dom.iterable", "esnext"],
"declaration": true,
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"esModuleInterop": true,
"moduleResolution": "node",
"resolveJsonModule": true,
"incremental": true,
"jsx": "react-jsx"
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}

View File

@ -9,6 +9,7 @@
# @vercel/commerce-vendure # @vercel/commerce-vendure
# @vercel/commerce-kibocommerce # @vercel/commerce-kibocommerce
# @vercel/commerce-commercejs # @vercel/commerce-commercejs
# @vercel/commerce-commercelayer
COMMERCE_PROVIDER= COMMERCE_PROVIDER=
BIGCOMMERCE_STOREFRONT_API_URL= BIGCOMMERCE_STOREFRONT_API_URL=
@ -21,7 +22,6 @@ BIGCOMMERCE_STORE_URL=
BIGCOMMERCE_STORE_API_STORE_HASH= BIGCOMMERCE_STORE_API_STORE_HASH=
BIGCOMMERCE_STORE_API_CLIENT_SECRET= BIGCOMMERCE_STORE_API_CLIENT_SECRET=
NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN= NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN=
NEXT_PUBLIC_SHOPIFY_STOREFRONT_ACCESS_TOKEN= NEXT_PUBLIC_SHOPIFY_STOREFRONT_ACCESS_TOKEN=
@ -31,10 +31,6 @@ NEXT_PUBLIC_SWELL_PUBLIC_KEY=
NEXT_PUBLIC_SALEOR_API_URL= NEXT_PUBLIC_SALEOR_API_URL=
NEXT_PUBLIC_SALEOR_CHANNEL= NEXT_PUBLIC_SALEOR_CHANNEL=
NEXT_PUBLIC_COMMERCELAYER_CLIENT_ID=
NEXT_PUBLIC_COMMERCELAYER_ENDPOINT=
NEXT_PUBLIC_COMMERCELAYER_MARKET_SCOPE=
NEXT_PUBLIC_VENDURE_SHOP_API_URL= NEXT_PUBLIC_VENDURE_SHOP_API_URL=
NEXT_PUBLIC_VENDURE_LOCAL_URL= NEXT_PUBLIC_VENDURE_LOCAL_URL=
@ -51,3 +47,7 @@ KIBO_API_HOST=
NEXT_PUBLIC_COMMERCEJS_PUBLIC_KEY= NEXT_PUBLIC_COMMERCEJS_PUBLIC_KEY=
NEXT_PUBLIC_COMMERCEJS_DEPLOYMENT_URL= NEXT_PUBLIC_COMMERCEJS_DEPLOYMENT_URL=
NEXT_PUBLIC_COMMERCELAYER_CLIENT_ID=
NEXT_PUBLIC_COMMERCELAYER_ENDPOINT=
NEXT_PUBLIC_COMMERCELAYER_MARKET_SCOPE=

View File

@ -19,6 +19,7 @@ const PROVIDERS = [
'@vercel/commerce-kibocommerce', '@vercel/commerce-kibocommerce',
'@vercel/commerce-spree', '@vercel/commerce-spree',
'@vercel/commerce-commercejs', '@vercel/commerce-commercejs',
'@vercel/commerce-commercelayer',
] ]
function getProviderName() { function getProviderName() {

View File

@ -23,8 +23,8 @@
"@components/*": ["components/*"], "@components/*": ["components/*"],
"@commerce": ["../packages/commerce/src"], "@commerce": ["../packages/commerce/src"],
"@commerce/*": ["../packages/commerce/src/*"], "@commerce/*": ["../packages/commerce/src/*"],
"@framework": ["../packages/local/src"], "@framework": ["../packages/commercelayer/src"],
"@framework/*": ["../packages/local/src/*"] "@framework/*": ["../packages/commercelayer/src/*"]
} }
}, },
"include": ["next-env.d.ts", "**/*.d.ts", "**/*.ts", "**/*.tsx", "**/*.js"], "include": ["next-env.d.ts", "**/*.d.ts", "**/*.ts", "**/*.tsx", "**/*.js"],

11003
yarn.lock

File diff suppressed because it is too large Load Diff