aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@nodelib/fs.stat/out/providers/stat.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@nodelib/fs.stat/out/providers/stat.js')
-rw-r--r--node_modules/@nodelib/fs.stat/out/providers/stat.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/node_modules/@nodelib/fs.stat/out/providers/stat.js b/node_modules/@nodelib/fs.stat/out/providers/stat.js
new file mode 100644
index 0000000..a7bbc52
--- /dev/null
+++ b/node_modules/@nodelib/fs.stat/out/providers/stat.js
@@ -0,0 +1,45 @@
+"use strict";
+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;