33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.toTreeSync = void 0;
|
||
|
const printTree_1 = require("sonic-forest/lib/print/printTree");
|
||
|
const util_1 = require("../node-to-fsa/util");
|
||
|
const toTreeSync = (fs, opts = {}) => {
|
||
|
var _a;
|
||
|
const separator = opts.separator || '/';
|
||
|
let dir = opts.dir || separator;
|
||
|
if (dir[dir.length - 1] !== separator)
|
||
|
dir += separator;
|
||
|
const tab = opts.tab || '';
|
||
|
const depth = (_a = opts.depth) !== null && _a !== void 0 ? _a : 10;
|
||
|
let subtree = ' (...)';
|
||
|
if (depth > 0) {
|
||
|
const list = fs.readdirSync(dir, { withFileTypes: true });
|
||
|
subtree = (0, printTree_1.printTree)(tab, list.map(entry => tab => {
|
||
|
if (entry.isDirectory()) {
|
||
|
return (0, exports.toTreeSync)(fs, { dir: dir + entry.name, depth: depth - 1, tab });
|
||
|
}
|
||
|
else if (entry.isSymbolicLink()) {
|
||
|
return '' + entry.name + ' → ' + fs.readlinkSync(dir + entry.name);
|
||
|
}
|
||
|
else {
|
||
|
return '' + entry.name;
|
||
|
}
|
||
|
}));
|
||
|
}
|
||
|
const base = (0, util_1.basename)(dir, separator) + separator;
|
||
|
return base + subtree;
|
||
|
};
|
||
|
exports.toTreeSync = toTreeSync;
|
||
|
//# sourceMappingURL=index.js.map
|