fs-utils.js
624 Bytes
/*
* MIT License http://opensource.org/licenses/MIT
* Author: Ben Holloway @bholloway
*/
'use strict';
const fsUtils = (fs) => {
// fs from enhanced-resolver doesn't include fs.existsSync so we need to use fs.statsSync instead
const withStats = (fn) => (absolutePath) => {
try {
return fn(fs.statSync(absolutePath));
} catch (e) {
return false;
}
};
return {
isFileSync: withStats((stats) => stats.isFile()),
isDirectorySync: withStats((stats) => stats.isDirectory()),
existsSync: withStats((stats) => stats.isFile() || stats.isDirectory())
};
};
module.exports = fsUtils;