@nodearch/joi-express
Version:
NodeArch Joi Express Extension
46 lines • 2.19 kB
JavaScript
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