UNPKG

@nodearch/joi-express

Version:

NodeArch Joi Express Extension

46 lines 2.19 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 { AppContext, Service } from '@nodearch/core'; import { ValidationMiddleware } from './validation.middleware.js'; import { ExpressDecorator } from '@nodearch/express'; import { JoiOpenApiService } from './joi-openapi.service.js'; let JoiOpenApiProvider = class JoiOpenApiProvider { constructor(appContext, joiOpenApiService) { this.appContext = appContext; this.joiOpenApiService = joiOpenApiService; } get() { const useMiddleware = this.appContext.getComponentRegistry().getDecorators({ useId: ExpressDecorator.MIDDLEWARE }); const useDecorators = useMiddleware.filter(decorator => decorator.data.component === ValidationMiddleware); const routes = useDecorators .filter(decorator => decorator.method) .map(decorator => { return { app: { component: decorator.componentInfo.getClass(), method: decorator.method }, schema: { data: this.joiOpenApiService.getRouteInfo(decorator.data.options) } }; }); return { routes }; } }; JoiOpenApiProvider = __decorate([ Service({ export: true }), __metadata("design:paramtypes", [AppContext, JoiOpenApiService]) ], JoiOpenApiProvider); export { JoiOpenApiProvider }; //# sourceMappingURL=openapi-provider.service.js.map