Repositorio del curso CCOM4030 el semestre B91 del proyecto Artesanías con el Instituto de Cultura

sync.js 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. const fsStat = require("@nodelib/fs.stat");
  4. const constants_1 = require("../constants");
  5. const utils = require("../utils");
  6. function read(directory, settings) {
  7. if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
  8. return readdirWithFileTypes(directory, settings);
  9. }
  10. return readdir(directory, settings);
  11. }
  12. exports.read = read;
  13. function readdirWithFileTypes(directory, settings) {
  14. const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });
  15. return dirents.map((dirent) => {
  16. const entry = {
  17. dirent,
  18. name: dirent.name,
  19. path: `${directory}${settings.pathSegmentSeparator}${dirent.name}`
  20. };
  21. if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {
  22. try {
  23. const stats = settings.fs.statSync(entry.path);
  24. entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);
  25. }
  26. catch (error) {
  27. if (settings.throwErrorOnBrokenSymbolicLink) {
  28. throw error;
  29. }
  30. }
  31. }
  32. return entry;
  33. });
  34. }
  35. exports.readdirWithFileTypes = readdirWithFileTypes;
  36. function readdir(directory, settings) {
  37. const names = settings.fs.readdirSync(directory);
  38. return names.map((name) => {
  39. const entryPath = `${directory}${settings.pathSegmentSeparator}${name}`;
  40. const stats = fsStat.statSync(entryPath, settings.fsStatSettings);
  41. const entry = {
  42. name,
  43. path: entryPath,
  44. dirent: utils.fs.createDirentFromStats(name, stats)
  45. };
  46. if (settings.stats) {
  47. entry.stats = stats;
  48. }
  49. return entry;
  50. });
  51. }
  52. exports.readdir = readdir;