Summary
File |
Based on all code |
Based on code coverage |
fileUtils.js |
|
70/71 |
98% |
70/71 |
Code
'use strict';
var _ = require('lodash');
var fs = require('fs');
var path = require('path');
var nodeGlob = require('glob');
var mkdirp = require('mkdirp');
/**
* Checks if a file or folder exists.
* @function
* @param path - The path to the file or folder.
* @returns True if the file exists.
*/
function fileOrFolderExistsSync(path) 0{
}{
try 1{
}{
var stats = fs.lstatSync(path);
return true;
}
catch (errror) 2{
}{
return false;
}
}
exports.fileOrFolderExistsSync = fileOrFolderExistsSync;
;
function fileOrFolderExists(path) 3{
}{
return new Promise(function (resolve) 4{
}{
fs.lstat(path, function (error, stats) 5{
}{
resolve(!error);
});
});
}
exports.fileOrFolderExists = fileOrFolderExists;
/**
* Reads a file.
* @function
* @param filename - The name of the file.
* @returns The content of the file.
*/
function readFile(filename) 6{
}{
return fs.readFileSync(filename, 'utf8');
}
exports.readFile = readFile;
;
/**
* Normalizes the paths of a list of filenames.
* @param files - The list of filenames which have to be normalized.
*/
function normalize(files) 7{
}{
_.forEach(files, function (file, key) 8{
}{
files[key] = path.resolve(path.normalize(file));
});
}
exports.normalize = normalize;
;
function glob(expression) 9{
}{
return new Promise(function (resolve, reject) 10{
}{
nodeGlob(expression, function (error, matches) 11{
}{
if (12true13falseerror) 14{
}{
reject(error);
}
else 15{
}{
resolve(matches);
}
});
});
}
exports.glob = glob;
function readdir(path) 16{
}{
return new Promise(function (resolve, reject) 17{
}{
fs.readdir(path, function (error, files) 18{
}{
if (19true20falseerror) 21{
}{
reject(error);
}
else 22{
}{
resolve(files);
}
});
});
}
exports.readdir = readdir;
function stats(path) 23{
}{
return new Promise(function (resolve, reject) 24{
}{
fs.stat(path, function (error, stats) 25{
}{
if (26true27falseerror) 28{
}{
reject(error);
}
else 29{
}{
resolve(stats);
}
});
});
}
function rmFile(path) 30{
}{
return new Promise(function (fileResolve, fileReject) 31{
}{
fs.unlink(path, function (error) 32{
}{
if (33true34falseerror) 35{
}{
fileReject(error);
}
else 36{
}{
fileResolve();
}
});
});
}
function deleteDir(dirToDelete) 37{
}{
return new Promise(function (resolve, reject) 38{
}{
fileOrFolderExists(dirToDelete).then(function (exists) 39{
}{
if (40true41falseexists) 42{
}{
readdir(dirToDelete).then(function (files) 43{
}{
var promisses = [];
files.forEach(function (file) 44{
}{
var currentPath = path.join(dirToDelete, file);
promisses.push(stats(currentPath).then(function (stats) 45{
}{
if (46true47falsestats.isDirectory()) 48{
}{
// recurse
return deleteDir(currentPath);
}
else 49{
}{
// delete file
return rmFile(currentPath);
}
}));
});
Promise.all(promisses).then(function () 50{
}{ return resolve(); });
});
}
else 51{
}{
resolve();
}
});
});
}
exports.deleteDir = deleteDir;
function cleanFolder(folderName) 52{
}{
return fileOrFolderExists(folderName)
.then(function (exists) 53{
}{
if (54true55falseexists) 56{
}{
return deleteDir(folderName)
.then(function () 57{
}{ return mkdirRecursive(folderName); });
}
else 58{
}{
return mkdirRecursive(folderName);
}
});
}
exports.cleanFolder = cleanFolder;
function writeFile(fileName, content) 59{
}{
return new Promise(function (resolve, reject) 60{
}{
fs.writeFile(fileName, content, function (err) 61{
}{
if (62true63falseerr) 64{
}{
reject(err);
}
else 65{
}{
resolve();
}
});
});
}
exports.writeFile = writeFile;
function mkdirRecursive(folderName) 66{
}{
if (67true68false!fileOrFolderExistsSync(folderName)) 69{
}{
mkdirp.sync(folderName);
}
}
exports.mkdirRecursive = mkdirRecursive;
/**
* Wrapper around the 'require' function (for testability)
*/
function importModule(moduleName) 70{
}{
require(moduleName);
}
exports.importModule = importModule;
//# sourceMappingURL=fileUtils.js.map