Recursive directory reader with a delightful API
rrdir
recursively reads a directory and returns entries within via an async iterator or async/sync as Array. It can typically iterate millions of files in a matter of seconds. Memory usage is O(1)
for the async iterator and O(n)
for the Array variants.
Contrary to other similar modules, this module is optionally able to read any path including ones that contain invalid UTF-8 sequences.
npm i rrdir
import {rrdir, rrdirAsync, rrdirSync} from "rrdir";
for await (const entry of rrdir("dir")) {
// => {path: 'dir/file', directory: false, symlink: false}
}
const entries = await rrdirAsync("dir");
// => [{path: 'dir/file', directory: false, symlink: false}]
const entries = rrdirSync("dir");
// => [{path: 'dir/file', directory: false, symlink: false}]
rrdir
is an async iterator which yields entry
. rrdirAsync
and rrdirSync
return an Array of entry
.
The directory to read, either absolute or relative. Pass a Uint8Array
to switch the module into Uint8Array
mode which is required to be able to read every file, like for example files with names that are invalid UTF-8 sequences.
-
stats
boolean: Whether to includeentry.stats
. Will reduce performance. Default:false
. -
followSymlinks
boolean: Whether to follow symlinks for both recursion andstat
calls. Default:false
. -
exclude
Array: Path globs to exclude, e.g.["**.js"]
. Default:undefined
. -
include
Array: Path globs to include, e.g.["**.map"]
. Default:undefined
. -
strict
boolean: Whether to throw immediately when reading an entry fails. Default:false
. -
insensitive
boolean: Whetherinclude
andexclude
match case-insensitively. Default:false
.
-
path
string | Uint8Array: The path to the entry, will be relative ifdir
is given relative. Ifdir
is aUint8Array
, this will be too. Always present. -
directory
boolean: Boolean indicating whether the entry is a directory.undefined
on error. -
symlink
boolean: Boolean indicating whether the entry is a symbolic link.undefined
on error. -
stats
Object: Afs.stats
object, present whenoptions.stats
is set.undefined
on error. -
err
Error: Any error encountered while reading this entry.undefined
on success.
© silverwind, distributed under BSD licence