@vulcan-sql/build
Version:
VulcanSQL package for building projects
37 lines • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CheckValidator = void 0;
const tslib_1 = require("tslib");
const middleware_1 = require("./middleware");
const lodash_1 = require("lodash");
const core_1 = require("@vulcan-sql/core");
const inversify_1 = require("inversify");
let CheckValidator = class CheckValidator extends middleware_1.SchemaParserMiddleware {
constructor(validatorLoader) {
super();
this.validatorLoader = validatorLoader;
}
handle(schemas, next) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
yield next();
const transformedSchemas = schemas;
const validators = (0, lodash_1.chain)(transformedSchemas.request)
.flatMap((req) => req.validators)
.value();
for (const validatorRequest of validators) {
if (!validatorRequest.name) {
throw new core_1.ConfigurationError('Validator name is required');
}
const validator = this.validatorLoader.getValidator(validatorRequest.name);
// TODO: indicate the detail of error
validator.validateSchema(validatorRequest.args);
}
});
}
};
CheckValidator = tslib_1.__decorate([
tslib_1.__param(0, (0, inversify_1.inject)(core_1.TYPES.ValidatorLoader)),
tslib_1.__metadata("design:paramtypes", [Object])
], CheckValidator);
exports.CheckValidator = CheckValidator;
//# sourceMappingURL=checkValidator.js.map