Skip to content

Commit 62aebf8

Browse files
committedMay 4, 2022
fix: handle typed H3Response
1 parent a32d81e commit 62aebf8

File tree

1 file changed

+4
-10
lines changed

1 file changed

+4
-10
lines changed
 

‎src/event.ts

+4-10
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,14 @@ export interface H3Event {
1212

1313
export type CompatibilityEvent = H3Event | IncomingMessage
1414

15-
// interface JSONObject { [x: string]: JSONValue }
16-
// interface JSONArray extends Array<JSONValue> { }
17-
// type JSONValue = undefined | null | string | number | boolean | JSONObject | JSONArray
18-
// type NonNullable<T> = T extends null | undefined ? never : T
19-
// TODO: Find a more reliable way to typecheck Response with complex intefaces
20-
// https://github.com/unjs/h3/issues/112
21-
export type H3Response = any
15+
export type H3Response<T = any> = T | Promise<T>
2216

23-
export interface EventHandler<T extends H3Response = H3Response> {
17+
export interface EventHandler<T=any> {
2418
'__is_handler__'?: true
25-
(event: CompatibilityEvent): T
19+
(event: CompatibilityEvent): H3Response<T>
2620
}
2721

28-
export function defineEventHandler <T extends H3Response = H3Response> (handler: EventHandler<T>): EventHandler<T> {
22+
export function defineEventHandler <T = any> (handler: EventHandler<T>): EventHandler<T> {
2923
handler.__is_handler__ = true
3024
return handler
3125
}

0 commit comments

Comments
 (0)
Please sign in to comment.