UNPKG

@syntropysoft/praetorian

Version:

Praetorian CLI – A universal multi-environment configuration validator for DevSecOps teams. Validate, compare, and secure YAML/ENV files with ease.

52 lines 1.87 kB
"use strict"; /** * ValidationService - Single Responsibility: Execute validation logic * * This service handles all validation operations: * - Creating validation functions * - Executing validation rules * - Managing validation context */ Object.defineProperty(exports, "__esModule", { value: true }); exports.ValidationService = void 0; const EqualityRule_1 = require("../../domain/rules/EqualityRule"); class ValidationService { /** * Create validation function (pure function) */ createValidationFunction(options) { // Guard clause: validate options if (!options || typeof options !== 'object') { throw new Error('Invalid validation options provided'); } return async (files) => { // Guard clause: validate files if (!Array.isArray(files)) { throw new Error('Files must be an array'); } const equalityRule = new EqualityRule_1.EqualityRule(); const context = { strict: options.strict ?? false, ignoreKeys: options.ignore_keys ?? [], requiredKeys: options.required_keys ?? [] }; return await equalityRule.execute(files, context); }; } /** * Execute validation with guard clauses */ async executeValidation(files, options) { // Guard clause: validate inputs if (!Array.isArray(files)) { throw new Error('Files must be an array'); } if (!options || typeof options !== 'object') { throw new Error('Invalid validation options provided'); } const validationFunction = this.createValidationFunction(options); return await validationFunction(files); } } exports.ValidationService = ValidationService; //# sourceMappingURL=ValidationService.js.map