Skip to content

Commit 531571c

Browse files
author
AI Code Reviewer
committed
fix: use more strict type inference for middleware responses
1 parent eddc322 commit 531571c

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

src/types.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ export interface HandlerInterface<
136136
...handlers: [H<E2, P, I> & M1, H<E3, P, I2, R>]
137137
): HonoBase<
138138
IntersectNonAnyTypes<[E, E2, E3]>,
139-
S & ToSchema<M, P, I2, MergeTypedResponse<R> | MergeMiddlewareResponseStrict<M1>>,
139+
S & ToSchema<M, P, I2, MergeTypedResponse<R> | MergeMiddlewareResponse<M1>>,
140140
BasePath
141141
>
142142

@@ -175,8 +175,8 @@ export interface HandlerInterface<
175175
P,
176176
I3,
177177
| MergeTypedResponse<R>
178-
| MergeMiddlewareResponseStrict<M1>
179-
| MergeMiddlewareResponseStrict<M2>
178+
| MergeMiddlewareResponse<M1>
179+
| MergeMiddlewareResponse<M2>
180180
>,
181181
BasePath
182182
>
@@ -2252,7 +2252,15 @@ type MergeTypedResponse<T> = T extends Promise<infer T2>
22522252
? T
22532253
: TypedResponse
22542254

2255-
type MergeMiddlewareResponse<T> = MergeTypedResponse<ExtractHandlerResponse<T>>
2255+
type MergeTypedResponseStrict<T> = T extends Promise<infer T2>
2256+
? T2 extends TypedResponse
2257+
? T2
2258+
: never
2259+
: T extends TypedResponse
2260+
? T
2261+
: never
2262+
2263+
type MergeMiddlewareResponse<T> = MergeTypedResponseStrict<ExtractHandlerResponse<T>>
22562264

22572265
////////////////////////////////////////
22582266
////// /////

0 commit comments

Comments
 (0)