UNPKG

@ts-fluentvalidation/core

Version:

Core library of @ts-fluentvalidation providing validations in a fluent syntax.

32 lines 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateSync = validateSync; const async_validator_invoked_synchronously_error_1 = require("../errors/async-validator-invoked-synchronously-error"); const utils_1 = require("./utils"); const validate_key_sync_1 = require("./validate-key-sync"); /** * Validates the given validation context synchronously. * * @param validationContext - The validation context to validate. * @param validations - The validations to apply. * @param validatorConfig - The configuration to apply. * @throws {AsyncValidatorInvokedSynchronouslyError} if the validator contains asynchronous validations or conditions but was invoked synchronously. */ function validateSync(validationContext, validations, validatorConfig) { var _a, _b; const includedProperties = validatorConfig.includeProperties ? (0, utils_1.wrapAsArray)(validatorConfig.includeProperties) : undefined; const validationEntries = includedProperties ? validations.filter(({ key }) => includedProperties === null || includedProperties === void 0 ? void 0 : includedProperties.includes(key)) : validations; if (validationEntries .flatMap(({ validations }) => validations) .some(validation => validation.metadata.isAsync || validation.metadata.asyncCondition !== undefined)) { throw new async_validator_invoked_synchronously_error_1.AsyncValidatorInvokedSynchronouslyError(); } for (const { key, validations, cascadeMode } of validationEntries) { const keyCascadeMode = (_b = (_a = validatorConfig.propertyCascadeMode) !== null && _a !== void 0 ? _a : cascadeMode) !== null && _b !== void 0 ? _b : 'Continue'; (0, validate_key_sync_1.validateKeySync)(validationContext, key, validations, keyCascadeMode, validatorConfig.throwOnFailures); if (validationContext.failures.length > 0 && validatorConfig.cascadeMode === 'Stop') { break; } } } //# sourceMappingURL=validate-sync.js.map