UNPKG

refakts

Version:

TypeScript refactoring tool built for AI coding agents to perform precise refactoring operations via command line instead of requiring complete code regeneration.

86 lines 3.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DefinitionFormatter = exports.PreviewFormatter = exports.LineFormatter = exports.BasicFormatter = void 0; const definition_range_detector_1 = require("./definition-range-detector"); class BasicFormatter { format(matches, fileName) { return matches.map(match => this.formatMatch(match, fileName)); } formatMatch(match, fileName) { const location = this.createLocationString(match, fileName); if (this.isMultilineMatch(match)) { return this.formatMultilineMatch(match, location); } return this.formatSingleLineMatch(match, location); } createLocationString(match, fileName) { return `[${fileName} ${match.line}:${match.column}-${match.endLine}:${match.endColumn}]`; } formatSingleLineMatch(match, location) { return { location, content: match.text }; } isMultilineMatch(match) { return match.line !== match.endLine; } formatMultilineMatch(match, location) { return { location: `\n${location}`, content: `${match.text}\n${location}\n` }; } } exports.BasicFormatter = BasicFormatter; class LineFormatter { format(matches, fileName) { return matches.map(match => ({ location: `[${fileName} ${match.line}:-${match.line}:]`, content: match.fullLine.trim() })); } } exports.LineFormatter = LineFormatter; class PreviewFormatter { format(matches, fileName) { return matches.map(match => ({ location: `[${fileName} ${match.line}:${match.column}-${match.endLine}:${match.endColumn}]`, content: match.fullLine.trim() })); } } exports.PreviewFormatter = PreviewFormatter; class DefinitionFormatter { constructor() { this.detector = new definition_range_detector_1.DefinitionRangeDetector(); } createDefinitionResult(match, fileName, file) { const definitionRange = this.detector.findDefinitionRange(match, file); if (!definitionRange) { return null; } return this.buildDefinitionResult(definitionRange, fileName); } buildDefinitionResult(definitionRange, fileName) { return { location: `[${fileName} ${definitionRange.startLine}:-${definitionRange.endLine}:]`, content: definitionRange.content }; } format(matches, fileName, file) { const results = []; for (const match of matches) { this.processMatchForDefinition(match, fileName, file, results); } return results; } processMatchForDefinition(match, fileName, file, results) { const result = this.createDefinitionResult(match, fileName, file); if (result) { results.push(result); } } } exports.DefinitionFormatter = DefinitionFormatter; //# sourceMappingURL=result-formatters.js.map