UNPKG

nuxt-procedures

Version:

Nuxt module to define and easily consume your backend API in a validated and type-safe way using procedures and Zod schemas.

23 lines (22 loc) 798 B
import { type EventHandler, type H3Event } from 'h3'; import z from 'zod'; export interface Procedure<I extends z.ZodTypeAny = z.ZodUndefined, O extends z.ZodTypeAny = z.ZodVoid> extends EventHandler { __procedureMetadata: { inputSchema: I; outputSchema: O; }; } type Awaitable<T> = T | Promise<T>; type HandlerArgs<I> = I extends undefined ? { event: H3Event; } : { input: I; event: H3Event; }; type Handler<I extends z.ZodTypeAny = z.ZodUndefined, O extends z.ZodTypeAny = z.ZodVoid> = (args: HandlerArgs<z.infer<I>>) => Awaitable<z.infer<O>>; export declare function defineProcedure<I extends z.ZodTypeAny = z.ZodUndefined, O extends z.ZodTypeAny = z.ZodVoid>(args: { input?: I; output?: O; handler: Handler<I, O>; }): Procedure<I, O>; export {};