From 72338252755a3cc5dc91a5a5fe1487055ef30a1e Mon Sep 17 00:00:00 2001 From: Robert Soriano Date: Fri, 31 Jan 2025 10:08:21 -0800 Subject: [PATCH] fix(tanstack-start): Fix event handler return type mismatch (#5051) --- .changeset/great-peaches-yell.md | 5 +++++ packages/tanstack-start/package.json | 3 ++- packages/tanstack-start/src/server/middlewareHandler.ts | 9 ++++++--- pnpm-lock.yaml | 3 +++ 4 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 .changeset/great-peaches-yell.md diff --git a/.changeset/great-peaches-yell.md b/.changeset/great-peaches-yell.md new file mode 100644 index 00000000000..f95f3e9e066 --- /dev/null +++ b/.changeset/great-peaches-yell.md @@ -0,0 +1,5 @@ +--- +"@clerk/tanstack-start": patch +--- + +Fix type mismatch between TanStack Start and Clerk event handlers diff --git a/packages/tanstack-start/package.json b/packages/tanstack-start/package.json index 9e1176c5fe7..f74ffcad7f3 100644 --- a/packages/tanstack-start/package.json +++ b/packages/tanstack-start/package.json @@ -69,7 +69,8 @@ "devDependencies": { "@tanstack/react-router": "^1.97.25", "@tanstack/start": "^1.97.25", - "esbuild-plugin-file-path-extensions": "^2.1.2" + "esbuild-plugin-file-path-extensions": "^2.1.2", + "h3": "^1.13.0" }, "peerDependencies": { "@tanstack/react-router": ">=1.85.9", diff --git a/packages/tanstack-start/src/server/middlewareHandler.ts b/packages/tanstack-start/src/server/middlewareHandler.ts index 3faa31b9eae..ec56e4711a9 100644 --- a/packages/tanstack-start/src/server/middlewareHandler.ts +++ b/packages/tanstack-start/src/server/middlewareHandler.ts @@ -1,5 +1,5 @@ import type { AnyRouter } from '@tanstack/react-router'; -import type { EventHandler } from 'vinxi/http'; +import type { eventHandler } from 'h3'; import { authenticateRequest } from './authenticateRequest'; import { loadOptions } from './loadOptions'; @@ -11,13 +11,16 @@ export type HandlerCallback = (ctx: { router: TRouter; responseHeaders: Headers; }) => Response | Promise; -export type CustomizeStartHandler = (cb: HandlerCallback) => EventHandler; + +export type CustomizeStartHandler = ( + cb: HandlerCallback, +) => ReturnType; export function createClerkHandler( eventHandler: CustomizeStartHandler, clerkOptions: LoaderOptions = {}, ) { - return (cb: HandlerCallback): EventHandler => { + return (cb: HandlerCallback) => { return eventHandler(async ({ request, router, responseHeaders }) => { try { const loadedOptions = loadOptions(request, clerkOptions); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0907dfefcd3..a51a16dd604 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -963,6 +963,9 @@ importers: esbuild-plugin-file-path-extensions: specifier: ^2.1.2 version: 2.1.4 + h3: + specifier: ^1.13.0 + version: 1.14.0 packages/testing: dependencies: