diff --git a/apps/public/app/api/[...op]/route.ts b/apps/public/app/api/[...op]/route.ts index 8c9ad4a3..76850fe5 100644 --- a/apps/public/app/api/[...op]/route.ts +++ b/apps/public/app/api/[...op]/route.ts @@ -1,5 +1,3 @@ import { createRouteHandler } from '@openpanel/nextjs/server'; -const routeHandler = createRouteHandler(); -export const GET = routeHandler; -export const POST = routeHandler; +export const { GET, POST } = createRouteHandler(); diff --git a/apps/public/content/docs/(tracking)/sdks/nextjs.mdx b/apps/public/content/docs/(tracking)/sdks/nextjs.mdx index 8afef4a5..9fec63d3 100644 --- a/apps/public/content/docs/(tracking)/sdks/nextjs.mdx +++ b/apps/public/content/docs/(tracking)/sdks/nextjs.mdx @@ -278,11 +278,7 @@ With `createRouteHandler` you can proxy your events through your server, this wi ```typescript title="/app/api/[...op]/route.ts" import { createRouteHandler } from '@openpanel/nextjs/server'; -const routeHandler = createRouteHandler(); - -// Export the same handler for all HTTP methods - it routes internally based on pathname -export const GET = routeHandler; -export const POST = routeHandler; +export const { GET, POST } = createRouteHandler(); ``` Remember to change the `apiUrl` and `cdnUrl` in the `OpenPanelComponent` to your own server. diff --git a/packages/sdks/nextjs/createNextRouteHandler.ts b/packages/sdks/nextjs/createNextRouteHandler.ts index 41e91ab3..1a54c854 100644 --- a/packages/sdks/nextjs/createNextRouteHandler.ts +++ b/packages/sdks/nextjs/createNextRouteHandler.ts @@ -116,7 +116,7 @@ async function handleScriptProxyRoute(req: Request): Promise { function createRouteHandler(options?: RouteHandlerOptions) { const apiUrl = options?.apiUrl ?? DEFAULT_API_URL; - return async function handler(req: Request): Promise { + const handler = async function handler(req: Request): Promise { const url = new URL(req.url); const pathname = url.pathname; const method = req.method; @@ -134,6 +134,11 @@ function createRouteHandler(options?: RouteHandlerOptions) { const apiPath = pathname.substring(apiPathMatch); return handleApiRoute(req, apiUrl, apiPath); }; + + handler.GET = handler; + handler.POST = handler; + + return handler; } export { createRouteHandler }; @@ -141,3 +146,5 @@ export { createRouteHandler }; // const routeHandler = createRouteHandler(); // export const GET = routeHandler; // export const POST = routeHandler; +// Or +// export const { GET, POST } = createRouteHandler(); diff --git a/packages/sdks/nextjs/package.json b/packages/sdks/nextjs/package.json index 12c3df35..d503e5a2 100644 --- a/packages/sdks/nextjs/package.json +++ b/packages/sdks/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@openpanel/nextjs", - "version": "1.1.0-local", + "version": "1.1.1-local", "module": "index.ts", "scripts": { "build": "rm -rf dist && tsup",