import { z } from "zod";
// ^^^^^
// Cannot find module 'zod' or its corresponding type declarations.
export type AnyInput = z.ZodTypeAny | z.ZodNever;
export type MiddlewareArgs<TRequest, TResponse> = {
request: TRequest;
response: TResponse;
};
export type AnyMiddlewareArgs = MiddlewareArgs<any, any>;
export type Middleware<
TMiddlewareArgs extends AnyMiddlewareArgs,
TInput extends AnyInput,
> = (params: {
request: TMiddlewareArgs["request"];
response: TMiddlewareArgs["response"];
input: z.infer<TInput>;
}) => any;
export type AnyMiddleware = Middleware<AnyMiddlewareArgs, never> | null;
export type Path<TInput extends AnyInput, TMiddleware extends AnyMiddleware> = (
params: {
input: z.infer<TInput>;
} & (TMiddleware extends null
? { context?: never }
: { context: Awaited<ReturnType<TMiddleware>> }),
// ^^^^^^^^^^^
// Type 'TMiddleware' does not satisfy the constraint '(...args: any) => any'.
// Type 'AnyMiddleware' is not assignable to type '(...args: any) => any'.
// Type 'null' is not assignable to type '(...args: any) => any'.
) => string[];
#Problem with if/else typescript case
4 messages · Page 1 of 1 (latest)