UNPKG

remove-logs-cli

Version:

CLI tool to remove console.log statements from JavaScript files

131 lines (121 loc) 4.47 kB
const LANGUAGE_CONFIGS = { javascript: { extensions: ['.js', '.jsx', '.ts', '.tsx', '.mjs', '.cjs'], patterns: [ { type: 'CallExpression', match: (node) => node.callee.type === 'MemberExpression' && node.callee.object.name === 'console' && ['log', 'debug', 'info', 'trace'].includes(node.callee.property.name) } ], parser: { name: '@babel/parser', options: { sourceType: 'module', plugins: ['jsx', 'typescript', 'decorators-legacy', 'classProperties'] } } }, python: { extensions: ['.py'], patterns: [ { type: 'CallExpression', match: (node) => (node.callee.type === 'Identifier' && node.callee.name === 'print') || (node.callee.type === 'MemberExpression' && node.callee.object.name === 'logging' && ['debug', 'info', 'warning', 'error'].includes(node.callee.property.name)) } ], parser: { name: '@babel/parser', options: { sourceType: 'module' } } }, java: { extensions: ['.java'], patterns: [ { type: 'CallExpression', match: (node) => node.callee.type === 'MemberExpression' && ['System.out.println', 'System.out.print', 'logger.info', 'logger.debug'].some(pattern => node.callee.property.name === pattern.split('.').pop()) } ], parser: { name: '@babel/parser', options: { sourceType: 'module' } } }, php: { extensions: ['.php'], patterns: [ { type: 'CallExpression', match: (node) => { const isErrorLog = node.callee.type === 'Identifier' && ['error_log', 'print_r', 'var_dump', 'var_export'].includes(node.callee.name); const isEcho = node.callee.type === 'Identifier' && ['echo', 'print'].includes(node.callee.name); const isLogger = node.callee.type === 'MemberExpression' && node.callee.object.name === 'Logger' && ['debug', 'info', 'warning', 'error'].includes(node.callee.property.name); return isErrorLog || isEcho || isLogger; } } ], parser: { name: '@babel/parser', options: { sourceType: 'module' } } }, kotlin: { extensions: ['.kt', '.kts'], patterns: [ { type: 'CallExpression', match: (node) => { const isPrintln = node.callee.type === 'Identifier' && ['println', 'print'].includes(node.callee.name); const isLogger = node.callee.type === 'MemberExpression' && (node.callee.object.name === 'Log' || node.callee.object.name === 'Logger') && ['d', 'debug', 'i', 'info', 'w', 'warn', 'e', 'error'].includes(node.callee.property.name); return isPrintln || isLogger; } } ], parser: { name: '@babel/parser', options: { sourceType: 'module' } } }, csharp: { extensions: ['.cs'], patterns: [ { type: 'CallExpression', match: (node) => { const isConsole = node.callee.type === 'MemberExpression' && node.callee.object.name === 'Console' && ['WriteLine', 'Write', 'Debug'].includes(node.callee.property.name); const isDebug = node.callee.type === 'MemberExpression' && node.callee.object.name === 'Debug' && ['WriteLine', 'Write', 'Log'].includes(node.callee.property.name); const isLogger = node.callee.type === 'MemberExpression' && (node.callee.object.name === '_logger' || node.callee.object.name === 'Logger') && ['LogDebug', 'LogInformation', 'LogWarning', 'LogError'].includes(node.callee.property.name); return isConsole || isDebug || isLogger; } } ], parser: { name: '@babel/parser', options: { sourceType: 'module' } } } }; module.exports = { LANGUAGE_CONFIGS };