UNPKG

@vulcan-sql/build

Version:

VulcanSQL package for building projects

40 lines 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AddParameter = void 0; const tslib_1 = require("tslib"); const core_1 = require("@vulcan-sql/core"); const middleware_1 = require("./middleware"); const constants_1 = require("./constants"); class AddParameter extends middleware_1.SchemaParserMiddleware { handle(schemas, next) { return tslib_1.__awaiter(this, void 0, void 0, function* () { // Add fallback value for request property schemas.request = schemas.request || []; const metadata = schemas.metadata; // Skip validation if no metadata found if (!(metadata === null || metadata === void 0 ? void 0 : metadata[constants_1.PARAMETER_METADATA_NAME])) return next(); const parameters = metadata[constants_1.PARAMETER_METADATA_NAME]; parameters.forEach((parameter) => { // We only check the first value of nested parameters const name = parameter.name.split('.')[0]; const existedParam = schemas.request.find((paramInSchema) => paramInSchema.fieldName === name); if (existedParam) { if (!existedParam.validators) existedParam.validators = []; existedParam.validators.push(...(parameter.validators || [])); } else { schemas.request.push({ fieldName: name, fieldIn: core_1.FieldInType.QUERY, validators: parameter.validators || [], }); } }); yield next(); }); } } exports.AddParameter = AddParameter; //# sourceMappingURL=addParameter.js.map