ntts
Version:
A CLI tool for refactoring an existing NodeJs application to a fully functional TypeScript application.
43 lines (42 loc) • 1.9 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var fs_1 = require("fs");
var path_1 = require("path");
var ignore_1 = __importDefault(require("ignore"));
var logger_1 = __importDefault(require("../logger/logger"));
var FileRename = /** @class */ (function () {
function FileRename() {
}
var _a;
_a = FileRename;
FileRename.javaScriptEnding = /\.[mc]?js$/g;
FileRename.rename = function (target, ignores) {
logger_1.default.info('Renaming all JavaScript files');
FileRename.findAndRename(ignores, target || '.');
logger_1.default.success('All JavaScript files renamed to TypeScript files');
};
FileRename.renameFileEnding = function (file, newEnding) { return file.replace(_a.javaScriptEnding, newEnding); };
FileRename.isJavaScriptFile = function (file) { return _a.javaScriptEnding.test(file); };
FileRename.renameFile = function (file) {
(0, fs_1.renameSync)(file, _a.renameFileEnding(file, '.ts'));
};
FileRename.checkDirectoryEntry = function (item, path, ig, ignoreList) {
var fullPath = (0, path_1.join)(path, item.name);
if (item.isFile() && !ig.ignores(fullPath) && _a.javaScriptEnding.test(item.name)) {
_a.renameFile(fullPath);
}
if (item.isDirectory() && !ig.ignores(fullPath)) {
_a.findAndRename(ignoreList, fullPath);
}
};
FileRename.findAndRename = function (ignoreList, path) {
var ig = (0, ignore_1.default)().add(ignoreList);
(0, fs_1.readdirSync)(path, { withFileTypes: true })
.forEach(function (item) { return _a.checkDirectoryEntry(item, path, ig, ignoreList); });
};
return FileRename;
}());
exports.default = FileRename;