refactor(zod-openapi): fix type errors (#1078)
* refactor(zod-openapi): fix type errors * fix typespull/1017/head
parent
7cba581041
commit
70834f9f70
|
@ -198,22 +198,26 @@ type ExtractStatusCode<T extends RouteConfigStatusCode> = T extends keyof Status
|
||||||
type DefinedStatusCodes<R extends RouteConfig> = keyof R['responses'] & RouteConfigStatusCode
|
type DefinedStatusCodes<R extends RouteConfig> = keyof R['responses'] & RouteConfigStatusCode
|
||||||
export type RouteConfigToTypedResponse<R extends RouteConfig> =
|
export type RouteConfigToTypedResponse<R extends RouteConfig> =
|
||||||
| {
|
| {
|
||||||
[Status in DefinedStatusCodes<R>]: undefined extends R['responses'][Status]['content']
|
[Status in DefinedStatusCodes<R>]: R['responses'][Status] extends { content: infer Content }
|
||||||
? TypedResponse<{}, ExtractStatusCode<Status>, string>
|
? undefined extends Content
|
||||||
: ReturnJsonOrTextOrResponse<
|
? never
|
||||||
keyof R['responses'][Status]['content'],
|
: ReturnJsonOrTextOrResponse<
|
||||||
ExtractContent<R['responses'][Status]['content']>,
|
keyof R['responses'][Status]['content'],
|
||||||
Status
|
ExtractContent<R['responses'][Status]['content']>,
|
||||||
>
|
Status
|
||||||
|
>
|
||||||
|
: TypedResponse<{}, ExtractStatusCode<Status>, string>
|
||||||
}[DefinedStatusCodes<R>]
|
}[DefinedStatusCodes<R>]
|
||||||
| ('default' extends keyof R['responses']
|
| ('default' extends keyof R['responses']
|
||||||
? undefined extends R['responses']['default']['content']
|
? R['responses']['default'] extends { content: infer Content }
|
||||||
? TypedResponse<{}, Exclude<StatusCode, ExtractStatusCode<DefinedStatusCodes<R>>>, string>
|
? undefined extends Content
|
||||||
: ReturnJsonOrTextOrResponse<
|
? never
|
||||||
keyof R['responses']['default']['content'],
|
: ReturnJsonOrTextOrResponse<
|
||||||
ExtractContent<R['responses']['default']['content']>,
|
keyof Content,
|
||||||
Exclude<StatusCode, ExtractStatusCode<DefinedStatusCodes<R>>>
|
ExtractContent<Content>,
|
||||||
>
|
Exclude<StatusCode, ExtractStatusCode<DefinedStatusCodes<R>>>
|
||||||
|
>
|
||||||
|
: TypedResponse<{}, Exclude<StatusCode, ExtractStatusCode<DefinedStatusCodes<R>>>, string>
|
||||||
: never)
|
: never)
|
||||||
|
|
||||||
export type Hook<T, E extends Env, P extends string, R> = (
|
export type Hook<T, E extends Env, P extends string, R> = (
|
||||||
|
|
Loading…
Reference in New Issue