mirror of
https://github.com/vercel/commerce.git
synced 2025-06-19 05:31:22 +00:00
Moved method
This commit is contained in:
parent
beccca8eaf
commit
722f4cee23
@ -1,19 +1,15 @@
|
||||
import type { NextApiHandler } from 'next'
|
||||
import type { RequestInit } from '@vercel/fetch'
|
||||
import { CommerceAPI, CommerceAPIConfig } from '@commerce/api'
|
||||
import {
|
||||
CommerceAPIConfig,
|
||||
getCommerceApi as commerceApi,
|
||||
getEndpoint,
|
||||
} from '@commerce/api'
|
||||
import fetchGraphqlApi from './utils/fetch-graphql-api'
|
||||
import fetchStoreApi from './utils/fetch-store-api'
|
||||
|
||||
import type { CartAPI } from './cart'
|
||||
import login from './operations/login'
|
||||
import {
|
||||
Operations,
|
||||
defaultOperations,
|
||||
AllowedOperations,
|
||||
OPERATIONS,
|
||||
getOperations,
|
||||
APIOperations,
|
||||
} from '@commerce/api/operations'
|
||||
|
||||
export interface BigcommerceConfig extends CommerceAPIConfig {
|
||||
// Indicates if the returned metadata with translations should be applied to the
|
||||
@ -119,17 +115,16 @@ export type APIs = CartAPI
|
||||
export function getCommerceApi<P extends Provider>(
|
||||
customProvider: P = provider as any
|
||||
) {
|
||||
const commerce = new CommerceAPI(customProvider)
|
||||
const operations = getOperations(customProvider.operations, { commerce })
|
||||
const api = commerceApi(customProvider)
|
||||
|
||||
return Object.assign(commerce, operations, {
|
||||
return Object.assign(api, {
|
||||
endpoint<E extends APIs>(
|
||||
context: E['endpoint'] & {
|
||||
config?: P['config']
|
||||
options?: E['schema']['endpoint']['options']
|
||||
}
|
||||
): NextApiHandler {
|
||||
return super.endpoint(context)
|
||||
return getEndpoint(api, context)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ import type { NextApiHandler } from 'next'
|
||||
import type { RequestInit, Response } from '@vercel/fetch'
|
||||
import type { APIEndpoint, APIHandler } from './utils/types'
|
||||
import type { CartSchema } from '../types/cart'
|
||||
import { APIOperations } from './operations'
|
||||
import { APIOperations, getOperations } from './operations'
|
||||
|
||||
export type APISchemas = CartSchema
|
||||
|
||||
@ -65,26 +65,36 @@ export class CommerceAPI<P extends APIProvider = APIProvider> {
|
||||
setConfig(newConfig: Partial<P['config']>) {
|
||||
Object.assign(this.provider.config, newConfig)
|
||||
}
|
||||
}
|
||||
|
||||
endpoint<T extends GetAPISchema<any, any>>(
|
||||
context: T['endpoint'] & {
|
||||
config?: P['config']
|
||||
options?: T['schema']['endpoint']['options']
|
||||
}
|
||||
): NextApiHandler {
|
||||
const commerce = this
|
||||
const cfg = this.getConfig(context.config)
|
||||
export function getCommerceApi<P extends APIProvider>(customProvider: P) {
|
||||
const commerce = new CommerceAPI(customProvider)
|
||||
const operations = getOperations(customProvider.operations, { commerce })
|
||||
|
||||
return function apiHandler(req, res) {
|
||||
return context.handler({
|
||||
req,
|
||||
res,
|
||||
commerce,
|
||||
config: cfg,
|
||||
operations: context.operations,
|
||||
options: context.options ?? {},
|
||||
})
|
||||
}
|
||||
return Object.assign(commerce, operations)
|
||||
}
|
||||
|
||||
export function getEndpoint<
|
||||
P extends APIProvider,
|
||||
T extends GetAPISchema<any, any>
|
||||
>(
|
||||
commerce: CommerceAPI<P>,
|
||||
context: T['endpoint'] & {
|
||||
config?: P['config']
|
||||
options?: T['schema']['endpoint']['options']
|
||||
}
|
||||
): NextApiHandler {
|
||||
const cfg = commerce.getConfig(context.config)
|
||||
|
||||
return function apiHandler(req, res) {
|
||||
return context.handler({
|
||||
req,
|
||||
res,
|
||||
commerce,
|
||||
config: cfg,
|
||||
operations: context.operations,
|
||||
options: context.options ?? {},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user