'use strict'; const readdirSync = require('./sync'); const readdirAsync = require('./async'); const readdirStream = require('./stream'); module.exports = exports = readdirAsyncPath; exports.readdir = exports.readdirAsync = exports.async = readdirAsyncPath; exports.readdirAsyncStat = exports.async.stat = readdirAsyncStat; exports.readdirStream = exports.stream = readdirStreamPath; exports.readdirStreamStat = exports.stream.stat = readdirStreamStat; exports.readdirSync = exports.sync = readdirSyncPath; exports.readdirSyncStat = exports.sync.stat = readdirSyncStat; /** * Synchronous readdir that returns an array of string paths. * * @param {string} dir * @param {object} [options] * @returns {string[]} */ function readdirSyncPath (dir, options) { return readdirSync(dir, options, {}); } /** * Synchronous readdir that returns results as an array of {@link fs.Stats} objects * * @param {string} dir * @param {object} [options] * @returns {fs.Stats[]} */ function readdirSyncStat (dir, options) { return readdirSync(dir, options, { stats: true }); } /** * Aynchronous readdir (accepts an error-first callback or returns a {@link Promise}). * Results are an array of path strings. * * @param {string} dir * @param {object} [options] * @param {function} [callback] * @returns {Promise} */ function readdirAsyncPath (dir, options, callback) { return readdirAsync(dir, options, callback, {}); } /** * Aynchronous readdir (accepts an error-first callback or returns a {@link Promise}). * Results are an array of {@link fs.Stats} objects. * * @param {string} dir * @param {object} [options] * @param {function} [callback] * @returns {Promise} */ function readdirAsyncStat (dir, options, callback) { return readdirAsync(dir, options, callback, { stats: true }); } /** * Aynchronous readdir that returns a {@link stream.Readable} (which is also an {@link EventEmitter}). * All stream data events ("data", "file", "directory", "symlink") are passed a path string. * * @param {string} dir * @param {object} [options] * @returns {stream.Readable} */ function readdirStreamPath (dir, options) { return readdirStream(dir, options, {}); } /** * Aynchronous readdir that returns a {@link stream.Readable} (which is also an {@link EventEmitter}) * All stream data events ("data", "file", "directory", "symlink") are passed an {@link fs.Stats} object. * * @param {string} dir * @param {object} [options] * @returns {stream.Readable} */ function readdirStreamStat (dir, options) { return readdirStream(dir, options, { stats: true }); }