UNPKG

@coursebuilder/next

Version:

Next for Course Builder.

36 lines (35 loc) 1.43 kB
import { headers } from 'next/headers.js'; import { CourseBuilder } from '@coursebuilder/core'; import { reqWithEnvURL, setEnvDefaults } from './lib/env.js'; import { initCourseBuilder } from './lib/index.js'; export default function NextCourseBuilder(config) { if (typeof config === 'function') { const httpHandler = (req) => { const isWebhook = ['stripe-signature'].every((prop) => prop in req.headers); const _config = config(req); setEnvDefaults(_config); return CourseBuilder(reqWithEnvURL(req), _config); }; return { handlers: { GET: httpHandler, POST: httpHandler }, coursebuilder: initCourseBuilder(config, (c) => setEnvDefaults(c)), }; } setEnvDefaults(config); const httpHandler = async (req) => { const stripeHeader = (await headers()).get('stripe-signature'); const isWebhook = ['stripe-signature'].every((prop) => { return prop in req.headers; }); // const body = await req.text() const newReq = reqWithEnvURL(req); const handler = CourseBuilder(newReq, config); // const body = await newReq.text() // console.log('body', body) return handler; }; return { handlers: { POST: httpHandler, GET: httpHandler }, coursebuilder: initCourseBuilder(config, (c) => setEnvDefaults(c)), }; }