@syntropysoft/praetorian
Version:
Praetorian CLI – A universal multi-environment configuration validator for DevSecOps teams. Validate, compare, and secure YAML/ENV files with ease.
46 lines • 1.41 kB
JavaScript
;
/**
* TODO: DECLARATIVE PROGRAMMING PATTERN
*
* This file demonstrates excellent declarative programming practices:
* - Pure functions with no side effects
* - Functional composition with Promise.all()
* - Immutable data handling
* - Null coalescing operators (??)
* - Array methods (map, length)
* - No imperative loops or state mutations
*
* Mutation Score: 100% - This is why declarative code is easier to test!
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.PluginValidator = void 0;
class PluginValidator {
constructor(options = {}) {
this.options = {
strict: false,
...options
};
}
/**
* Run validation through all plugins
*/
async validateThroughPlugins(plugins, config, context) {
return Promise.all(plugins.map(plugin => plugin.validate(config, context)));
}
/**
* Check if validation should be considered successful
*/
isValidationSuccessful(errors) {
// Funcional: usar operador de coalescencia nula y verificación de longitud
const errorCount = errors?.length ?? 0;
return errorCount === 0 || !this.options.strict;
}
/**
* Get strict mode setting
*/
isStrictMode() {
return this.options.strict || false;
}
}
exports.PluginValidator = PluginValidator;
//# sourceMappingURL=PluginValidator.js.map