UNPKG

@diullei/codeguardian

Version:

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

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