Skip to content

Commit

Permalink
fix(tanstack-start): Fix event handler return type mismatch (#5051)
Browse files Browse the repository at this point in the history
  • Loading branch information
wobsoriano authored Jan 31, 2025
1 parent d3152be commit 7233825
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 4 deletions.
5 changes: 5 additions & 0 deletions .changeset/great-peaches-yell.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@clerk/tanstack-start": patch
---

Fix type mismatch between TanStack Start and Clerk event handlers
3 changes: 2 additions & 1 deletion packages/tanstack-start/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
9 changes: 6 additions & 3 deletions packages/tanstack-start/src/server/middlewareHandler.ts
Original file line number Diff line number Diff line change
@@ -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';
Expand All @@ -11,13 +11,16 @@ export type HandlerCallback<TRouter extends AnyRouter> = (ctx: {
router: TRouter;
responseHeaders: Headers;
}) => Response | Promise<Response>;
export type CustomizeStartHandler<TRouter extends AnyRouter> = (cb: HandlerCallback<TRouter>) => EventHandler;

export type CustomizeStartHandler<TRouter extends AnyRouter> = (
cb: HandlerCallback<TRouter>,
) => ReturnType<typeof eventHandler>;

export function createClerkHandler<TRouter extends AnyRouter>(
eventHandler: CustomizeStartHandler<TRouter>,
clerkOptions: LoaderOptions = {},
) {
return (cb: HandlerCallback<TRouter>): EventHandler => {
return (cb: HandlerCallback<TRouter>) => {
return eventHandler(async ({ request, router, responseHeaders }) => {
try {
const loadedOptions = loadOptions(request, clerkOptions);
Expand Down
3 changes: 3 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 7233825

Please sign in to comment.