UNPKG

crapifyme

Version:

Ultra-fast developer productivity CLI tools - remove comments, logs, and more

67 lines 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LogsProcessor = void 0; const tokenizer_1 = require("../../shared/tokenizer"); class LogsProcessor { constructor(options = {}) { this.keepPatterns = options.keep || []; this.preserveDebug = options.preserveDebug !== false; this.preserveError = options.preserveError !== false; this.preserveWarn = options.preserveWarn !== false; } processFile(content) { const tokenizer = new tokenizer_1.SimpleTokenizer(); const tokens = tokenizer.tokenize(content); const result = []; let removed = 0; let preserved = 0; for (const token of tokens) { if (token.type === 'console-log') { if (this.shouldPreserveLog(token.value)) { result.push(token.value); preserved++; } else { removed++; } } else { result.push(token.value); } } const processedContent = result.join(''); return { content: processedContent, modified: content !== processedContent, removed, preserved }; } shouldPreserveLog(logStatement) { const lowerLog = logStatement.toLowerCase(); for (const pattern of this.keepPatterns) { if (lowerLog.includes(pattern.toLowerCase())) { return true; } } if (this.preserveError && lowerLog.includes('console.error')) { return true; } // Preserve console.warn by default if (this.preserveWarn && lowerLog.includes('console.warn')) { return true; } if (this.preserveDebug && lowerLog.includes('console.debug')) { return true; } const importantMethods = ['console.assert', 'console.trace', 'console.time', 'console.timeEnd']; for (const method of importantMethods) { if (lowerLog.includes(method)) { return true; } } return false; } } exports.LogsProcessor = LogsProcessor; //# sourceMappingURL=logic.js.map