rrdir
Recursive directory reader with a delightful API
rrdir
recursively reads a directory and returns entries within via an async iterator or array. It has minimal dependencies and can typically iterate millions of files in a matter of seconds. Memory usage is O(1)
for the iterator and O(n)
for the array variants.
Installation
npm i rrdir
Examples
const rrdir = require("rrdir");
for await (const entry of rrdir.stream("dir")) {
}
const entries = await rrdir("dir");
const entries = rrdir.sync("dir");
API
rrdir(dir, [options])
rrdir.stream(dir, [options])
rrdir.sync(dir, [options])
Recursively read a directory for entries contained within. rrdir
and rrdir.sync
return an array of entry
, rrdir.stream
is a async iterator which yields entry
. By default, errors while reading files will be ignored and put in entry.err
.
options
options.stats
boolean: Whether to include entry.stats
. Will reduce performance. Default: false
.options.followSymlinks
boolean: Whether to follow symlinks for both recursion and stat
calls. Default: false
.options.exclude
Array: Path globs to exclude, e.g. ["**/*.js"]
. Default: undefined
.options.include
Array: Path globs to include, e.g. ["**/*.map"]
. Default: undefined
.options.strict
boolean: Whether to throw immediately when reading an entry fails. Default: false
.options.match
Object: picomatch options. Default: {dot: true}
.
entry
entry.path
string: The path to the entry, will be relative if dir
is given relative. Always present.entry.directory
boolean: Boolean indicating whether the entry is a directory. undefined
on error.entry.symlink
boolean: Boolean indicating whether the entry is a symbolic link. undefined
on error.entry.stats
Object: A fs.stats
object, present when options.stats
is set. undefined
on error.entry.err
Error: Any error encountered while reading this entry. undefined
on success.
© silverwind, distributed under BSD licence