UNPKG

express-joi-simple

Version:

## Installation

47 lines 2.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Joi = require("joi-express"); var Swagger = require("swagger-json"); var SwaggerUi = require("swagger-ui-express"); var fs = require("fs"); var ExpressJoiSimple = /** @class */ (function () { function ExpressJoiSimple() { } ExpressJoiSimple.prototype.validateJoiSchema = function (schema) { return Joi(schema); }; ExpressJoiSimple.prototype.generateDoc = function (app, info) { Swagger.swaggerDoc.createJsonDoc(info); app._router.stack.forEach(function (middleware) { if (middleware.route) { // routes registered directly on the app var _a = middleware.route, path_1 = _a.path, stack = _a.stack; if (path_1) { stack.forEach(function (routeMehtod) { if (routeMehtod.name == 'validateRequest') { var joiSchema = routeMehtod.handle('schemaBypass'); Swagger.swaggerDoc.addNewRoute(joiSchema, path_1, routeMehtod.method); } }); } } else if (middleware.name === 'router') { // router middleware middleware.handle.stack.forEach(function (handler) { var _a = handler.route, path = _a.path, stack = _a.stack; if (path) { stack.forEach(function (routeMehtod) { if (routeMehtod.name == 'validateRequest') { var joiSchema = routeMehtod.handle('schemaBypass'); Swagger.swaggerDoc.addNewRoute(joiSchema, middleware.prefix + path, routeMehtod.method); } }); } }); } }); var swaggerDocument = fs.readFileSync('./swagger.json', 'utf8'); app.use('/documentation', SwaggerUi.serve, SwaggerUi.setup(JSON.parse(swaggerDocument))); }; return ExpressJoiSimple; }()); exports.ExpressJoiSimple = ExpressJoiSimple; //# sourceMappingURL=express-joi-simple.js.map