async.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.read = void 0;
  4. function read(path, settings, callback) {
  5. settings.fs.lstat(path, (lstatError, lstat) => {
  6. if (lstatError !== null) {
  7. callFailureCallback(callback, lstatError);
  8. return;
  9. }
  10. if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) {
  11. callSuccessCallback(callback, lstat);
  12. return;
  13. }
  14. settings.fs.stat(path, (statError, stat) => {
  15. if (statError !== null) {
  16. if (settings.throwErrorOnBrokenSymbolicLink) {
  17. callFailureCallback(callback, statError);
  18. return;
  19. }
  20. callSuccessCallback(callback, lstat);
  21. return;
  22. }
  23. if (settings.markSymbolicLink) {
  24. stat.isSymbolicLink = () => true;
  25. }
  26. callSuccessCallback(callback, stat);
  27. });
  28. });
  29. }
  30. exports.read = read;
  31. function callFailureCallback(callback, error) {
  32. callback(error);
  33. }
  34. function callSuccessCallback(callback, result) {
  35. callback(null, result);
  36. }