1
0
mirror of https://github.com/vercel/commerce.git synced 2025-04-27 05:17:50 +00:00
2020-10-04 19:44:11 -05:00

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))
}
}
}