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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 577 - (hide 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 rakinar2 577 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