UNPKG

2.17 kBJavaScriptView Raw
1"use strict";
2var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4 return new (P || (P = Promise))(function (resolve, reject) {
5 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8 step((generator = generator.apply(thisArg, _arguments || [])).next());
9 });
10};
11var __importDefault = (this && this.__importDefault) || function (mod) {
12 return (mod && mod.__esModule) ? mod : { "default": mod };
13};
14Object.defineProperty(exports, "__esModule", { value: true });
15const fs_1 = __importDefault(require("fs"));
16const router_1 = __importDefault(require("./router"));
17const operations_1 = require("./operations");
18const middleware_1 = require("./middleware");
19const createMiddleware = ({ file, locale = 'en', options = {}, }) => {
20 if (!fs_1.default.existsSync(file)) {
21 throw new Error('File with the openapi docs does not exist');
22 }
23 const router = router_1.default();
24 const operations = operations_1.createOperations({ file, locale, options });
25 router.use('/{0,}', (req, res, next) => __awaiter(void 0, void 0, void 0, function* () {
26 res.locals.operation = yield operations.match(req);
27 next();
28 }));
29 router.use(middleware_1.isAuthenticated, middleware_1.validateHeaders, middleware_1.validatePath, middleware_1.validateQuery, middleware_1.validateBody);
30 router.use((req, res, next) => {
31 return res.locals.operation ? res.locals.operation.generateResponse(req, res) : next();
32 });
33 router.use((req, res) => {
34 res.status(404).send({ message: 'Not found' });
35 });
36 router.use((err, req, res) => {
37 res.status(500).send({ message: 'Something broke!' });
38 });
39 return router;
40};
41exports.default = createMiddleware;
42//# sourceMappingURL=index.js.map
\No newline at end of file