@mark01/express-utils
Version:
npm package that contains utilities for express.js
20 lines (19 loc) • 905 B
TypeScript
import { RequestHandler } from 'express';
import { Request, Response } from 'express';
import { z, ZodError } from 'zod';
export type RequestSchemas<TParams, TQuery, TBody, TResponse> = {
params?: z.ZodType<TParams>;
query?: z.ZodType<TQuery>;
body?: z.ZodType<TBody>;
response?: z.ZodType<TResponse>;
};
export type ErrorListItem = {
type: 'Params' | 'Body' | 'Query' | 'Response';
errors: ZodError;
};
export type RequestCallback<TParams, TQuery, TBody, TResponse> = (data: {
params: TParams;
query: TQuery;
body: TBody;
}, req: Request, res: Response) => Promise<TResponse> | TResponse;
export declare const promiseController: <TParams = unknown, TQuery = unknown, TBody = unknown, TResponse = unknown>(schemas: RequestSchemas<TParams, TQuery, TBody, TResponse>, cb: RequestCallback<TParams, TQuery, TBody, TResponse>, successStatusCode?: number) => RequestHandler;