260322:1648 Correct Coresspondence / Doing RFA / Correct CI
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
function getAllFiles(dirPath, arrayOfFiles) {
|
||||
const files = fs.readdirSync(dirPath);
|
||||
arrayOfFiles = arrayOfFiles || [];
|
||||
|
||||
files.forEach(function (file) {
|
||||
const fullPath = path.join(dirPath, file);
|
||||
if (fs.statSync(fullPath).isDirectory()) {
|
||||
arrayOfFiles = getAllFiles(fullPath, arrayOfFiles);
|
||||
} else {
|
||||
if (file.endsWith('.ts') || file.endsWith('.tsx')) {
|
||||
arrayOfFiles.push(fullPath);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return arrayOfFiles;
|
||||
}
|
||||
|
||||
const paths = ['backend/src', 'frontend/app', 'frontend/components'];
|
||||
paths.forEach((p) => {
|
||||
const fullPath = path.resolve(process.cwd(), p);
|
||||
if (!fs.existsSync(fullPath)) return;
|
||||
const files = getAllFiles(fullPath);
|
||||
files.forEach((file) => {
|
||||
let content = fs.readFileSync(file, 'utf8');
|
||||
let changed = false;
|
||||
|
||||
// 1. Handle parseInt(expression, 10) -> Number(expression)
|
||||
// Using a more greedy approach for expression
|
||||
const newContent1 = content.replace(/parseInt\s*\(([\s\S]+?),\s*10\s*\)/g, (match, p1) => {
|
||||
return `Number(${p1.trim()})`;
|
||||
});
|
||||
if (newContent1 !== content) {
|
||||
content = newContent1;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
// 2. Handle parseInt(expression) -> Number(expression)
|
||||
const newContent2 = content.replace(/parseInt\s*\(([\s\S]+?)\)/g, (match, p1) => {
|
||||
if (p1.trim().startsWith('Number(')) return match;
|
||||
return `Number(${p1.trim()})`;
|
||||
});
|
||||
if (newContent2 !== content) {
|
||||
content = newContent2;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
// 3. Handle +expression -> Number(expression)
|
||||
// Only if it's NOT part of a larger number literal or addition/subtraction
|
||||
// This is tricky with regex, so we'll look for common patterns like @Param() id: string -> +id
|
||||
// But the lint error message said "+value is forbidden", so it's likely single variable prefix
|
||||
// We'll target patterns like: = +someVar, ( +someVar ), [ +someVar ], : +someVar, return +someVar
|
||||
const patterns = [/(=|\(|\{|\[|:|,|\s|!)\+([a-zA-Z0-0_.]+(?:\([^)]*\))?)/g];
|
||||
|
||||
patterns.forEach((regex) => {
|
||||
const newContent = content.replace(regex, (match, prefix, expr) => {
|
||||
// Avoid replacing things like '1 + 2' or 'string + string'
|
||||
// We only replace if the prefix is a delimiter or space and it's a unary '+'
|
||||
if (expr.match(/^[0-9]/)) return match; // skip +1, +0.5
|
||||
return `${prefix}Number(${expr})`;
|
||||
});
|
||||
if (newContent !== content) {
|
||||
content = newContent;
|
||||
changed = true;
|
||||
}
|
||||
});
|
||||
|
||||
if (changed) {
|
||||
console.log(`Fixed: ${file}`);
|
||||
fs.writeFileSync(file, content, 'utf8');
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user