UNPKG

@nodearch/joi-express

Version:

NodeArch Joi Express Extension

41 lines 1.9 kB
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; import Joi from 'joi'; import { Middleware, BadRequest } from '@nodearch/express'; import { JoiExpressConfig } from './joi-express.config.js'; let ValidationMiddleware = class ValidationMiddleware { constructor(config) { this.config = config; } async handler(data) { const objectToValidate = { body: data.args.req.body, params: data.args.req.params, query: data.args.req.query, headers: data.args.req.headers, }; try { const result = Joi.attempt(objectToValidate, data.options, this.config.joiOptions); data.args.req.body = result.body; data.args.req.params = result.params; data.args.req.query = result.query; data.args.req.headers = result.headers; } catch (err) { throw new BadRequest(err.message, err.details); } } }; ValidationMiddleware = __decorate([ Middleware({ export: true }), __metadata("design:paramtypes", [JoiExpressConfig]) ], ValidationMiddleware); export { ValidationMiddleware }; //# sourceMappingURL=validation.middleware.js.map