UNPKG

yogeshs-utilities

Version:
61 lines 3.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = require("fs"); const path_1 = require("path"); const libs_1 = require("../../libs"); const consoleLogger = new libs_1.ConsoleLogger(__filename); class PathExtensions { constructor() { this.changeExtension = function (dirPath, ext) { var allFiles = (0, fs_1.readdirSync)(dirPath); allFiles.forEach(function (file) { var oldPath = (0, path_1.join)(dirPath, file); var baseName = (0, path_1.basename)(oldPath); if (!(baseName.lastIndexOf(ext) === -1)) return; var newPath = (0, path_1.join)(dirPath, file).concat(ext); (0, fs_1.renameSync)(oldPath, newPath); }); }; this.changeExtensions = function (rootPath, ext, dirToLook, dirToSkip = []) { if (!(0, fs_1.existsSync)(rootPath)) return; dirToLook = Array.isArray(dirToLook) ? dirToLook : []; dirToSkip = Array.isArray(dirToSkip) ? Array.from(new Map(dirToSkip.map(s => [s.toLowerCase(), s])).values()) : []; consoleLogger.log(`Changing file extension from dir: `, { directories: dirToLook }); for (const dir of dirToLook) { var dirOrFiles = []; const dirPath = (0, path_1.resolve)(rootPath, dir); if (!(0, fs_1.existsSync)(dirPath)) continue; var directories = (0, fs_1.readdirSync)(dirPath); directories.forEach(d => dirOrFiles.push(d)); dirOrFiles = dirOrFiles.filter(d => !(d === "")); var uniqueDirectories = Array.from(new Set(dirOrFiles)); var remainingDirOrFiles = uniqueDirectories.filter(df => { return dirToSkip.every(d => d !== df); }); let total = remainingDirOrFiles.length; const bar = consoleLogger.showProgress(total); consoleLogger.log(`Total files to change extensions: ${total}`); remainingDirOrFiles.forEach((file, idx) => { bar.tick({ done: ++idx, length: total }); var oldPath = (0, path_1.join)(rootPath, dir, file); if (!(0, fs_1.existsSync)(oldPath)) return; const stats = (0, fs_1.statSync)(oldPath); // @ts-ignore if (stats.isDirectory()) return this.changeExtension(oldPath, ext); var baseName = (0, path_1.basename)(oldPath).toLowerCase(); if (baseName.lastIndexOf(ext) !== -1) return; var newPath = (0, path_1.join)(rootPath, dir, file).concat(ext); (0, fs_1.renameSync)(oldPath, newPath); }); } }; } } exports.default = PathExtensions; //# sourceMappingURL=path.js.map