UNPKG

remove-logs-cli

Version:

CLI tool to remove console.log statements from JavaScript files

35 lines (27 loc) 946 B
const { parse } = require('@babel/parser'); const traverse = require('@babel/traverse').default; const generate = require('@babel/generator').default; const path = require('path'); const { LANGUAGE_CONFIGS } = require('../config/languages'); async function removeLoggingStatements(code, filePath) { const ext = path.extname(filePath).toLowerCase(); const langConfig = Object.values(LANGUAGE_CONFIGS) .find(config => config.extensions.includes(ext)); if (!langConfig) { throw new Error(`Unsupported file type: ${ext}`); } const ast = parse(code, langConfig.parser.options); traverse(ast, { CallExpression(path) { if (langConfig.patterns.some(pattern => pattern.match(path.node))) { path.remove(); } } }); const output = generate(ast, { retainLines: true, compact: false }); return output.code; } module.exports = { removeLoggingStatements };