![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/lavocat.quebec/public_html/scripts/ |
#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const glob = require('glob');
// Patterns to match console statements
const consolePatterns = [
/console\.log\([^)]*\);?\s*/g,
/console\.warn\([^)]*\);?\s*/g,
/console\.error\([^)]*\);?\s*/g,
/console\.debug\([^)]*\);?\s*/g,
/console\.info\([^)]*\);?\s*/g,
];
// Files to exclude
const excludePatterns = [
'node_modules/**',
'.next/**',
'scripts/**',
'*.log',
'*.md',
];
function removeConsoleStatements(filePath) {
try {
let content = fs.readFileSync(filePath, 'utf8');
let originalLength = content.length;
let removedCount = 0;
// Remove console statements
consolePatterns.forEach(pattern => {
const matches = content.match(pattern);
if (matches) {
removedCount += matches.length;
content = content.replace(pattern, '');
}
});
// Clean up empty lines
content = content.replace(/\n\s*\n\s*\n/g, '\n\n');
if (removedCount > 0) {
fs.writeFileSync(filePath, content);
console.log(`ā
${filePath}: Removed ${removedCount} console statements (${originalLength - content.length} bytes)`);
return removedCount;
}
return 0;
} catch (error) {
console.error(`ā Error processing ${filePath}:`, error.message);
return 0;
}
}
function main() {
console.log('š Starting console.log removal...\n');
// Find all TypeScript and JavaScript files
const patterns = [
'src/**/*.{ts,tsx,js,jsx}',
'pages/**/*.{ts,tsx,js,jsx}',
'components/**/*.{ts,tsx,js,jsx}',
];
let totalRemoved = 0;
let filesProcessed = 0;
patterns.forEach(pattern => {
const files = glob.sync(pattern, {
ignore: excludePatterns,
cwd: process.cwd(),
});
files.forEach(file => {
const removed = removeConsoleStatements(file);
totalRemoved += removed;
filesProcessed++;
});
});
console.log(`\nš Summary:`);
console.log(` Files processed: ${filesProcessed}`);
console.log(` Console statements removed: ${totalRemoved}`);
console.log(` Average per file: ${filesProcessed > 0 ? (totalRemoved / filesProcessed).toFixed(1) : 0}`);
}
if (require.main === module) {
main();
}
module.exports = { removeConsoleStatements };