From 1fcc0c8da13d23f270852fff4c22cc1d27de7809 Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Mon, 23 Feb 2026 17:53:39 +0100 Subject: [PATCH 1/4] re-deprecate h3 v1 syntax in createMiddleware --- packages/start/src/middleware/index.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/start/src/middleware/index.ts b/packages/start/src/middleware/index.ts index a0a578a42..20243eadd 100644 --- a/packages/start/src/middleware/index.ts +++ b/packages/start/src/middleware/index.ts @@ -9,7 +9,7 @@ import type { FetchEvent } from "../server/types.ts"; export type MiddlewareFn = (event: FetchEvent) => Promise | unknown; /** This composes an array of Exchanges into a single ExchangeIO function */ -export type RequestMiddleware = ( +0export type RequestMiddleware = ( event: FetchEvent, ) => Response | Promise | void | Promise | Promise; @@ -50,7 +50,9 @@ function wrapResponseMiddleware(onBeforeResponse: ResponseMiddleware): Middlewar export function createMiddleware( args: | { + /** @deprecated Use H3 `Middleware` instead - https://h3.dev/guide/basics/middleware */ onRequest?: RequestMiddleware | RequestMiddleware[] | undefined; + /** @deprecated Use H3 `Middleware` instead - https://h3.dev/guide/basics/middleware */ onBeforeResponse?: ResponseMiddleware | ResponseMiddleware[] | undefined; } | Middleware[], From 1cc23cdd7e8141d507fb20be63ab2d9dc4811d4f Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Tue, 24 Feb 2026 00:17:18 +0100 Subject: [PATCH 2/4] h3 middleware --- packages/start/src/middleware/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/start/src/middleware/index.ts b/packages/start/src/middleware/index.ts index 20243eadd..7b22d2512 100644 --- a/packages/start/src/middleware/index.ts +++ b/packages/start/src/middleware/index.ts @@ -50,9 +50,9 @@ function wrapResponseMiddleware(onBeforeResponse: ResponseMiddleware): Middlewar export function createMiddleware( args: | { - /** @deprecated Use H3 `Middleware` instead - https://h3.dev/guide/basics/middleware */ + /** @deprecated Use H3 `Middleware` */ onRequest?: RequestMiddleware | RequestMiddleware[] | undefined; - /** @deprecated Use H3 `Middleware` instead - https://h3.dev/guide/basics/middleware */ + /** @deprecated Use H3 `Middleware` */ onBeforeResponse?: ResponseMiddleware | ResponseMiddleware[] | undefined; } | Middleware[], From 5a54bd0951b7fa1f1aa401ada24d254fe9eab44c Mon Sep 17 00:00:00 2001 From: Birk Skyum Date: Tue, 24 Feb 2026 00:18:49 +0100 Subject: [PATCH 3/4] typo --- packages/start/src/middleware/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/start/src/middleware/index.ts b/packages/start/src/middleware/index.ts index 7b22d2512..1a0a55d5f 100644 --- a/packages/start/src/middleware/index.ts +++ b/packages/start/src/middleware/index.ts @@ -9,7 +9,7 @@ import type { FetchEvent } from "../server/types.ts"; export type MiddlewareFn = (event: FetchEvent) => Promise | unknown; /** This composes an array of Exchanges into a single ExchangeIO function */ -0export type RequestMiddleware = ( +export type RequestMiddleware = ( event: FetchEvent, ) => Response | Promise | void | Promise | Promise; From 0d9ba53380f5330cdd6f773209428724a8f93d2d Mon Sep 17 00:00:00 2001 From: Birk Skyum <74932975+birkskyum@users.noreply.github.com> Date: Tue, 24 Feb 2026 11:15:20 +0100 Subject: [PATCH 4/4] Update index.ts Co-authored-by: Atila Fassina --- packages/start/src/middleware/index.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/start/src/middleware/index.ts b/packages/start/src/middleware/index.ts index 1a0a55d5f..19f068274 100644 --- a/packages/start/src/middleware/index.ts +++ b/packages/start/src/middleware/index.ts @@ -46,6 +46,21 @@ function wrapResponseMiddleware(onBeforeResponse: ResponseMiddleware): Middlewar * Creates middleware for handling requests and responses. * * @see https://docs.solidjs.com/solid-start/reference/server/create-middleware +/** + * Creates request/response middlewares via H3. + * + * Accepts an array of H3 {@link Middleware} + * + * @tip To run your middleware before response, `await next()` in your function block. + *@example + * const middleware = createMiddleware([ + * async (event, next) => { + * const resp = await next(); + * if (resp instanceof Response) return resp; + * return new Response("Not found", { status: 404 }); + * }, + * ]); + * */ export function createMiddleware( args: