Spaces:
Running
Running
| ; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; | |
| const fsStat = require("@nodelib/fs.stat"); | |
| const constants_1 = require("../constants"); | |
| const utils = require("../utils"); | |
| const common = require("./common"); | |
| function read(directory, settings) { | |
| if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { | |
| return readdirWithFileTypes(directory, settings); | |
| } | |
| return readdir(directory, settings); | |
| } | |
| exports.read = read; | |
| function readdirWithFileTypes(directory, settings) { | |
| const dirents = settings.fs.readdirSync(directory, { withFileTypes: true }); | |
| return dirents.map((dirent) => { | |
| const entry = { | |
| dirent, | |
| name: dirent.name, | |
| path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) | |
| }; | |
| if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { | |
| try { | |
| const stats = settings.fs.statSync(entry.path); | |
| entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); | |
| } | |
| catch (error) { | |
| if (settings.throwErrorOnBrokenSymbolicLink) { | |
| throw error; | |
| } | |
| } | |
| } | |
| return entry; | |
| }); | |
| } | |
| exports.readdirWithFileTypes = readdirWithFileTypes; | |
| function readdir(directory, settings) { | |
| const names = settings.fs.readdirSync(directory); | |
| return names.map((name) => { | |
| const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); | |
| const stats = fsStat.statSync(entryPath, settings.fsStatSettings); | |
| const entry = { | |
| name, | |
| path: entryPath, | |
| dirent: utils.fs.createDirentFromStats(name, stats) | |
| }; | |
| if (settings.stats) { | |
| entry.stats = stats; | |
| } | |
| return entry; | |
| }); | |
| } | |
| exports.readdir = readdir; | |