Spaces:
Sleeping
Sleeping
| ; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| function sync(path, options) { | |
| const lstat = options.fs.lstatSync(path); | |
| if (!isFollowedSymlink(lstat, options)) { | |
| return lstat; | |
| } | |
| try { | |
| const stat = options.fs.statSync(path); | |
| stat.isSymbolicLink = () => true; | |
| return stat; | |
| } | |
| catch (err) { | |
| if (!options.throwErrorOnBrokenSymlinks) { | |
| return lstat; | |
| } | |
| throw err; | |
| } | |
| } | |
| exports.sync = sync; | |
| function async(path, options, callback) { | |
| options.fs.lstat(path, (err0, lstat) => { | |
| if (err0) { | |
| return callback(err0, undefined); | |
| } | |
| if (!isFollowedSymlink(lstat, options)) { | |
| return callback(null, lstat); | |
| } | |
| options.fs.stat(path, (err1, stat) => { | |
| if (err1) { | |
| return options.throwErrorOnBrokenSymlinks ? callback(err1) : callback(null, lstat); | |
| } | |
| stat.isSymbolicLink = () => true; | |
| callback(null, stat); | |
| }); | |
| }); | |
| } | |
| exports.async = async; | |
| /** | |
| * Returns `true` for followed symlink. | |
| */ | |
| function isFollowedSymlink(stat, options) { | |
| return stat.isSymbolicLink() && options.followSymlinks; | |
| } | |
| exports.isFollowedSymlink = isFollowedSymlink; | |