@diullei/codeguardian
Version:
Open-source developer tool to validate and enforce architectural rules, especially for AI-generated code
39 lines • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SelectCommandOutputBuilder = exports.SelectFileChangesBuilder = exports.SelectASTNodesBuilder = exports.SelectLinesBuilder = exports.SelectFilesBuilder = void 0;
const selectors_1 = require("../../selectors");
class SelectFilesBuilder {
build(config, _factory) {
const status = config.status
? (Array.isArray(config.status) ? config.status : [config.status])
: undefined;
return new selectors_1.SelectFilesRule(config.id || 'select_files', config.path_pattern, status, config.exclude_pattern, config.select_all || false);
}
}
exports.SelectFilesBuilder = SelectFilesBuilder;
class SelectLinesBuilder {
build(config, _factory) {
const pattern = new RegExp(config.pattern, config.flags || '');
return new selectors_1.SelectLinesRule(config.id || 'select_lines', pattern, config.include_context || 0);
}
}
exports.SelectLinesBuilder = SelectLinesBuilder;
class SelectASTNodesBuilder {
build(config, _factory) {
return new selectors_1.SelectASTNodesRule(config.id || 'select_ast_nodes', config.query, config.language);
}
}
exports.SelectASTNodesBuilder = SelectASTNodesBuilder;
class SelectFileChangesBuilder {
build(config, _factory) {
return new selectors_1.SelectFileChangesRule(config.id || 'select_file_changes', config.min_percentage, config.max_percentage);
}
}
exports.SelectFileChangesBuilder = SelectFileChangesBuilder;
class SelectCommandOutputBuilder {
build(config, _factory) {
return new selectors_1.SelectCommandOutputRule(config.id || `select_command_${config.command?.substring(0, 20)}`, config.command);
}
}
exports.SelectCommandOutputBuilder = SelectCommandOutputBuilder;
//# sourceMappingURL=SelectorBuilders.js.map