47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import path from "path";
|
|
import fs from "fs";
|
|
|
|
const rootDir = path.resolve(__dirname, "../../../");
|
|
const ignorePattern =
|
|
/\/\.git\/|\/\.next\/|\/\.dist\/|node_modules|\/\.local_dist\/|\/\.tmp\/|\/types\/|\.config\.js|\/public\//;
|
|
|
|
function transformJsToTs(dir: string) {
|
|
const dirContent = fs.readdirSync(dir);
|
|
|
|
for (let i = 0; i < dirContent.length; i++) {
|
|
const fileFolder = dirContent[i];
|
|
const fullFileFolderPath = path.join(dir, fileFolder);
|
|
const stat = fs.statSync(fullFileFolderPath);
|
|
|
|
if (stat.isDirectory()) {
|
|
transformJsToTs(fullFileFolderPath);
|
|
continue;
|
|
}
|
|
|
|
if (ignorePattern.test(fullFileFolderPath)) continue;
|
|
|
|
if (fullFileFolderPath.match(/\.jsx?$/)) {
|
|
const extension = fullFileFolderPath.match(/\.jsx?$/)?.[0];
|
|
if (!extension) continue;
|
|
const newExtension = extension.replace("js", "ts");
|
|
const newFilePath = fullFileFolderPath.replace(
|
|
/\.jsx?$/,
|
|
newExtension
|
|
);
|
|
|
|
console.log(fullFileFolderPath);
|
|
console.log(extension, "=>", newExtension);
|
|
console.log(newFilePath);
|
|
console.log("\n/////////////////////////////////////////");
|
|
console.log("/////////////////////////////////////////\n");
|
|
|
|
fs.copyFileSync(fullFileFolderPath, newFilePath);
|
|
fs.unlinkSync(fullFileFolderPath);
|
|
}
|
|
}
|
|
}
|
|
|
|
console.log("rootDir", rootDir);
|
|
|
|
transformJsToTs(rootDir);
|