@diullei/codeguardian
Version:
Open-source developer tool to validate and enforce architectural rules, especially for AI-generated code
41 lines • 2.23 kB
JavaScript
;
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