forked from crowetic/commerce
24 lines
684 B
TypeScript
24 lines
684 B
TypeScript
import type { NextApiHandler, NextApiRequest, NextApiResponse } from 'next'
|
|
import { BigcommerceConfig, getConfig } from '..'
|
|
|
|
export type BigcommerceApiHandler<T = any> = (
|
|
req: NextApiRequest,
|
|
res: NextApiResponse<BigcommerceApiResponse<T>>,
|
|
config: BigcommerceConfig
|
|
) => void | Promise<void>
|
|
|
|
export type BigcommerceApiResponse<T> = {
|
|
data: T | null
|
|
errors?: { message: string }[]
|
|
}
|
|
|
|
export default function createApiHandler(handler: BigcommerceApiHandler) {
|
|
return function getApiHandler({
|
|
config,
|
|
}: { config?: BigcommerceConfig } = {}): NextApiHandler {
|
|
return function apiHandler(req, res) {
|
|
return handler(req, res, getConfig(config))
|
|
}
|
|
}
|
|
}
|