From f2c30060460c7c51e2330894f08a172c8b100aae Mon Sep 17 00:00:00 2001 From: Hornwitser Date: Wed, 20 Nov 2019 22:31:00 +0100 Subject: [PATCH] Remove obsolete fileOps code Remove sync functions that should not be used as well as of functions that provide functionality that is already implemented by fs-extra. --- lib/fileOps/fileOps.js | 74 ------------------------------------- test/lib/fileOps/fileOps.js | 68 ---------------------------------- 2 files changed, 142 deletions(-) diff --git a/lib/fileOps/fileOps.js b/lib/fileOps/fileOps.js index 1bcbe039..556220bf 100644 --- a/lib/fileOps/fileOps.js +++ b/lib/fileOps/fileOps.js @@ -25,80 +25,6 @@ async function getNewestFile(directory) { return newestFile; } -// get names of all directories in directory -var getDirectoriesSync = function(srcpath) { - return fs.readdirSync(srcpath).filter(function (file) { - return fs.statSync(path.join(srcpath, file)).isDirectory(); - }); -} -// get names of all files in a directory -var getFileNamesSync = function(srcpath) { - return fs.readdirSync(srcpath).filter(function (file) { - return !fs.statSync(path.join(srcpath, file)).isDirectory(); - }); -} -// does what it says on the tin -var deleteFolderRecursiveSync = function(path) { - if (fs.existsSync(path)) { - fs.readdirSync(path).forEach(function (file, index) { - var curPath = path + "/" + file; - if (fs.lstatSync(curPath).isDirectory()) { // recurse - deleteFolderRecursiveSync(curPath); - } else { // delete file - fs.unlinkSync(curPath); - } - }); - fs.rmdirSync(path); - return true; - } else { - return false; - } -}; -var deleteFolderRecursive = function(path){ - return new Promise((resolve, reject) => { - fs.readdir(path, (err, files) => { - if(err){ - reject(err); - } else { - let thingsToDelete = files.length; - files.forEach(file => { - let curPath = path + "/" + file; - fs.stat(curPath, (err, stat) => { - if(!err){ - if(stat.isDirectory()){ - // recurse - deleteFolderRecursive(curPath).then(() => { - whenFilesDeleted(); - }).catch(e => console.log(e)); - } else { - fs.unlink(curPath, () => { - // console.log("Deleted "+curPath); - whenFilesDeleted(); - }); - } - } else { - resolve(false); - } - }); - }); - whenFilesDeleted(); - function whenFilesDeleted(){ - if(!thingsToDelete--){// var-- instead of --var because we are calling the function once too much and need the delay - fs.rmdir(path, () => { - resolve(); - // console.log("Deleted "+path); - }); - } - } - } - }); - }); -} - module.exports = { getNewestFile, - getDirectoriesSync, - deleteFolderRecursiveSync, - deleteFolderRecursive, - getFileNamesSync, } diff --git a/test/lib/fileOps/fileOps.js b/test/lib/fileOps/fileOps.js index 74aadfee..1ed8608c 100644 --- a/test/lib/fileOps/fileOps.js +++ b/test/lib/fileOps/fileOps.js @@ -16,40 +16,6 @@ describe("fileOps.js", function(){ before(setupTestingEnv); - describe("fileOps.getDirectoriesSync()", function(){ - it("gets an array of directory names from a path", function(){ - let directories = fileOps.getDirectoriesSync(path.join(baseDir, "test")); - - // because there are no arrays for some reason - assert(typeof directories == "object"); - - // they are sorted alphabetically because thats the way it is - assert(directories[0] == "another folder" && directories[1] == "folder"); - }); - it("does not return any filenames", function(){ - let directories = fileOps.getDirectoriesSync(path.join(baseDir, "test")); - - // this is a function to return directories, not files. So yeah. - assert(!directories.includes("file.txt") && !directories.includes("another file.txt")); - }); - it("throws when lacking first argument", function(){ - assert.throws(function(){ - let files = fileOps.getDirectoriesSync(); - }, Error); - }); - }); - describe("fileOps.getFileNamesSync(path)", function(){ - it("gets names of files in directory", function(){ - let files = fileOps.getFileNamesSync(path.join(baseDir, "test")); - assert(files.length > 0); - assert(files.includes("file.txt") && files.includes("another file.txt")); - }); - it("throws when lacking first argument", function(){ - assert.throws(function(){ - let files = fileOps.getFileNamesSync(); - }, Error); - }); - }); describe("fileOps.getNewestFile()", function(){ it("returns a string in a directory with files", async function() { let newest = await fileOps.getNewestFile(path.join(baseDir, "test")); @@ -60,38 +26,4 @@ describe("fileOps.js", function(){ assert.equal(newest, null); }); }); - describe("fileOps.deleteFolderRecursiveSync(path)", function(){ - it("deletes a folder and all files and folders in it", function(){ - let x = fileOps.deleteFolderRecursiveSync(path.join(baseDir, "test")); - assert.throws(function(){ - fs.statSync(path.join(baseDir, "test")); - }, Error); - assert(x); - // give it some extra time because its sometimes very slow - }).timeout(5000); - it("returns false if you give it an invalid path", function(){ - let x = fileOps.deleteFolderRecursiveSync("This isn't a real path"); - assert(!x); - }); - }); - describe("fileOps.deleteFolderRecursive(path)", function(){ - it("deletes a folder and all files and folders in it, just like sync version", async function(){ - await setupTestingEnv(); - assert(fs.statSync(path.join(baseDir, "test"))); - let x = await fileOps.deleteFolderRecursive(path.join(baseDir, "test")); - assert.throws(function(){ - fs.statSync(path.join(baseDir, "test")); - }, Error); - assert(x === undefined, "Promise version of this function does not have a return value upon success"); - return true; - }).timeout(5000); - it("throws like a promise does if you give it an invalid path", async function(){ - let x = await fileOps.deleteFolderRecursive("Look this path is fake!") - .catch(e => { - assert(e); - assert.equal(e.code, "ENOENT"); - return true; - }); - }); - }); });