UNPKG

@diullei/codeguardian

Version:

Open-source developer tool to validate and enforce architectural rules, especially for AI-generated code

56 lines 2.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AnyOfRule = void 0; const core_1 = require("../core"); class AnyOfRule extends core_1.CombinatorRule { constructor(id, rules) { super(id, rules); } async evaluate(context) { const allViolations = []; for (const rule of this.rules) { let passed; let violations = []; if (rule instanceof core_1.AssertionRule && context.currentItem !== undefined) { try { const assertionResult = await rule.assertWithDetails(context.currentItem, context); passed = assertionResult.passed; if (!passed) { violations = [ { message: assertionResult.message || `Assertion '${rule.id}' failed`, severity: 'error', context: assertionResult.context, }, ]; } } catch (error) { passed = false; violations = [ { message: `Assertion '${rule.id}' error: ${error instanceof Error ? error.message : String(error)}`, severity: 'error', }, ]; } } else { const result = await rule.evaluate(context); passed = result.passed; violations = result.violations || []; } if (passed) { return { passed: true }; } allViolations.push(...violations); } return { passed: false, message: 'None of the rules passed', violations: allViolations, }; } } exports.AnyOfRule = AnyOfRule; //# sourceMappingURL=AnyOfRule.js.map