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; | |