fix-eperm.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.fixEPERMSync = exports.fixEPERM = void 0;
  4. const fs_js_1 = require("./fs.js");
  5. const { chmod } = fs_js_1.promises;
  6. const fixEPERM = (fn) => async (path) => {
  7. try {
  8. return await fn(path);
  9. }
  10. catch (er) {
  11. const fer = er;
  12. if (fer?.code === 'ENOENT') {
  13. return;
  14. }
  15. if (fer?.code === 'EPERM') {
  16. try {
  17. await chmod(path, 0o666);
  18. }
  19. catch (er2) {
  20. const fer2 = er2;
  21. if (fer2?.code === 'ENOENT') {
  22. return;
  23. }
  24. throw er;
  25. }
  26. return await fn(path);
  27. }
  28. throw er;
  29. }
  30. };
  31. exports.fixEPERM = fixEPERM;
  32. const fixEPERMSync = (fn) => (path) => {
  33. try {
  34. return fn(path);
  35. }
  36. catch (er) {
  37. const fer = er;
  38. if (fer?.code === 'ENOENT') {
  39. return;
  40. }
  41. if (fer?.code === 'EPERM') {
  42. try {
  43. (0, fs_js_1.chmodSync)(path, 0o666);
  44. }
  45. catch (er2) {
  46. const fer2 = er2;
  47. if (fer2?.code === 'ENOENT') {
  48. return;
  49. }
  50. throw er;
  51. }
  52. return fn(path);
  53. }
  54. throw er;
  55. }
  56. };
  57. exports.fixEPERMSync = fixEPERMSync;
  58. //# sourceMappingURL=fix-eperm.js.map