index.js 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.toTreeSync = void 0;
  4. const tree_dump_1 = require("tree-dump");
  5. const util_1 = require("../node-to-fsa/util");
  6. const toTreeSync = (fs, opts = {}) => {
  7. var _a;
  8. const separator = opts.separator || '/';
  9. let dir = opts.dir || separator;
  10. if (dir[dir.length - 1] !== separator)
  11. dir += separator;
  12. const tab = opts.tab || '';
  13. const depth = (_a = opts.depth) !== null && _a !== void 0 ? _a : 10;
  14. let subtree = ' (...)';
  15. if (depth > 0) {
  16. const list = fs.readdirSync(dir, { withFileTypes: true });
  17. subtree = (0, tree_dump_1.printTree)(tab, list.map(entry => tab => {
  18. if (entry.isDirectory()) {
  19. return (0, exports.toTreeSync)(fs, { dir: dir + entry.name, depth: depth - 1, tab });
  20. }
  21. else if (entry.isSymbolicLink()) {
  22. return '' + entry.name + ' → ' + fs.readlinkSync(dir + entry.name);
  23. }
  24. else {
  25. return '' + entry.name;
  26. }
  27. }));
  28. }
  29. const base = (0, util_1.basename)(dir, separator) + separator;
  30. return base + subtree;
  31. };
  32. exports.toTreeSync = toTreeSync;
  33. //# sourceMappingURL=index.js.map