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