UNPKG

@diullei/codeguardian

Version:

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

41 lines 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AssertLineCountBuilder = exports.AssertCommandOutputBuilder = exports.AssertPropertyBuilder = exports.AssertCountBuilder = exports.AssertMatchBuilder = void 0; const assertions_1 = require("../../assertions"); class AssertMatchBuilder { build(config, _factory) { const pattern = new RegExp(config.pattern, config.flags || ''); const id = config.id || `assert_match_${config.pattern?.substring(0, 20)}`; return new assertions_1.AssertMatchRule(id, pattern, config.should_match !== false, config.suggestion, config.documentation); } } exports.AssertMatchBuilder = AssertMatchBuilder; class AssertCountBuilder { build(config, _factory) { return new assertions_1.AssertCountRule(config.id || 'assert_count', config.condition, config.value); } } exports.AssertCountBuilder = AssertCountBuilder; class AssertPropertyBuilder { build(config, _factory) { const extractPattern = config.extract_pattern ? new RegExp(config.extract_pattern, config.extract_flags || '') : undefined; return new assertions_1.AssertPropertyRule(config.id || 'assert_property', config.property_path, config.expected_value, config.operator || '==', extractPattern); } } exports.AssertPropertyBuilder = AssertPropertyBuilder; class AssertCommandOutputBuilder { build(config, _factory) { const pattern = config.pattern ? new RegExp(config.pattern, config.flags || '') : undefined; return new assertions_1.AssertCommandOutputRule(config.id || `assert_command_output_${config.target}`, config.target, pattern, config.condition, config.value, config.first_lines, config.last_lines, config.should_match !== false); } } exports.AssertCommandOutputBuilder = AssertCommandOutputBuilder; class AssertLineCountBuilder { build(config, _factory) { return new assertions_1.AssertLineCountRule(config.id || 'assert_line_count', config.operator || '<=', config.max_lines || config.expected_value, config.message, config.suggestion, config.documentation); } } exports.AssertLineCountBuilder = AssertLineCountBuilder; //# sourceMappingURL=AssertionBuilders.js.map