Packages

@surfjs/next

Next.js adapters for App Router and Pages Router

@surfjs/next#

@surfjs/next provides two adapters for Next.js: createSurfRouteHandler for the App Router (edge-compatible) and createSurfPagesHandler for Pages Router API routes.

typescript
// App Router โ€” app/api/surf/[...slug]/route.ts
import { createSurf } from '@surfjs/core'
import { createSurfRouteHandler } from '@surfjs/next'
ย 
const surf = await createSurf({ name: 'My App', commands: { /* ... */ } })
export const { GET, POST } = createSurfRouteHandler(surf)
ย 
// โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
ย 
// Pages Router โ€” pages/api/surf/[...path].ts
import type { NextApiRequest, NextApiResponse } from 'next'
import { createSurf } from '@surfjs/core'
import { createSurfPagesHandler } from '@surfjs/next/pages'
ย 
const surf = await createSurf({ name: 'My App', commands: { /* ... */ } })
export default createSurfPagesHandler(surf)
ย 
export const config = {
api: { bodyParser: false },
}