You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

24 lines
624 B

/*
* 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;