/[sudobot]/branches/5.x/src/decorators/Validate.ts
ViewVC logotype

Contents of /branches/5.x/src/decorators/Validate.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 577 - (show annotations)
Mon Jul 29 18:52:37 2024 UTC (8 months, 1 week ago) by rakinar2
File MIME type: application/typescript
File size: 761 byte(s)
chore: add old version archive branches (2.x to 9.x-dev)
1 import { NextFunction, Request, Response } from "express";
2 import { ZodSchema } from "zod";
3 import type Controller from "../api/Controller";
4 import ValidateMiddleware from "../api/middleware/ValidateMiddleware";
5 import type Client from "../core/Client";
6
7 export function Validate(schema: ZodSchema) {
8 return (target: Controller, propertyKey: string, descriptor: PropertyDescriptor) => {
9 const metadata = Reflect.getMetadata("validation_middleware", target) ?? {};
10
11 const middleware = (client: Client, req: Request, res: Response, next: NextFunction) =>
12 ValidateMiddleware(schema, req, res, next);
13
14 metadata[propertyKey] ??= middleware;
15
16 Reflect.defineMetadata("validation_middleware", metadata, target);
17 };
18 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26