repomix
Version:
A tool to pack repository contents to single file for AI consumption
34 lines (33 loc) • 1.27 kB
JavaScript
import { BaseParseStrategy } from './BaseParseStrategy.js';
export class CssParseStrategy extends BaseParseStrategy {
parseCapture(capture, lines, processedChunks, _context) {
const { node, name } = capture;
const startRow = node.startPosition.row;
const endRow = node.endPosition.row;
if (!this.validateLineExists(lines, startRow)) {
return null;
}
const isCommentCapture = name.includes('comment');
const isSelectorCapture = name.includes('selector') || name.includes('definition.selector');
const isAtRuleCapture = name.includes('at_rule') || name.includes('definition.at_rule');
const shouldSelect = isCommentCapture || isSelectorCapture || isAtRuleCapture;
if (!shouldSelect) {
return null;
}
let selectedLines;
if (isCommentCapture) {
selectedLines = lines.slice(startRow, endRow + 1);
}
else {
selectedLines = [lines[startRow]];
}
if (selectedLines.length < 1) {
return null;
}
const chunk = selectedLines.join('\n');
if (!this.checkAndAddToProcessed(chunk, processedChunks)) {
return null;
}
return chunk;
}
}