Gathering detailed insights and metrics for readdirp-capacitor
Gathering detailed insights and metrics for readdirp-capacitor
Gathering detailed insights and metrics for readdirp-capacitor
Gathering detailed insights and metrics for readdirp-capacitor
Recursive version of fs.readdir with small RAM & CPU footprint.
npm install readdirp-capacitor
Typescript
Module System
Min. Node Version
Node Version
NPM Version
JavaScript (58.96%)
TypeScript (41.04%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
MIT License
387 Stars
463 Commits
54 Forks
8 Watchers
3 Branches
35 Contributors
Updated on Jun 17, 2025
Latest Version
4.0.0-beta1
Package Id
readdirp-capacitor@4.0.0-beta1
Unpacked Size
20.77 kB
Size
7.48 kB
File Count
5
NPM Version
9.5.0
Node Version
18.15.0
Published on
Oct 04, 2023
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
8
Recursive version of fs.readdir. Exposes a stream API and a promise API.
1npm install readdirp
1const readdirp = require('readdirp'); 2 3// Use streams to achieve small RAM & CPU footprint. 4// 1) Streams example with for-await. 5for await (const entry of readdirp('.')) { 6 const {path} = entry; 7 console.log(`${JSON.stringify({path})}`); 8} 9 10// 2) Streams example, non for-await. 11// Print out all JS files along with their size within the current folder & subfolders. 12readdirp('.', {fileFilter: '*.js', alwaysStat: true}) 13 .on('data', (entry) => { 14 const {path, stats: {size}} = entry; 15 console.log(`${JSON.stringify({path, size})}`); 16 }) 17 // Optionally call stream.destroy() in `warn()` in order to abort and cause 'close' to be emitted 18 .on('warn', error => console.error('non-fatal error', error)) 19 .on('error', error => console.error('fatal error', error)) 20 .on('end', () => console.log('done')); 21 22// 3) Promise example. More RAM and CPU than streams / for-await. 23const files = await readdirp.promise('.'); 24console.log(files.map(file => file.path)); 25 26// Other options. 27readdirp('test', { 28 fileFilter: '*.js', 29 directoryFilter: ['!.git', '!*modules'], 30 // directoryFilter: (di) => di.basename.length === 9 31 type: 'files_directories', 32 depth: 1 33});
For more examples, check out examples
directory.
const stream = readdirp(root[, options])
— Stream API
stream
of entry infosfor await (const entry of stream)
with node.js 10+ (asyncIterator
).on('data', (entry) => {})
entry info for every file / dir.on('warn', (error) => {})
non-fatal Error
that prevents a file / dir from being processed. Example: inaccessible to the user.on('error', (error) => {})
fatal Error
which also ends the stream. Example: illegal options where passed.on('end')
— we are done. Called when all entries were found and no more will be emitted.on('close')
— stream is destroyed via stream.destroy()
.
Could be useful if you want to manually abort even on a non fatal error.
At that point the stream is no longer readable
and no more entries, warning or errors are emittedconst entries = await readdirp.promise(root[, options])
— Promise API. Returns a list of entry infos.
First argument is awalys root
, path in which to start reading and recursing into subdirectories.
fileFilter: ["*.js"]
: filter to include or exclude files. A Function
, Glob string or Array of glob strings.
*.js
) which is matched using picomatch, so go there for more
information. Globstars (**
) are not supported since specifying a recursive pattern for an already recursive function doesn't make sense. Negated globs (as explained in the minimatch documentation) are allowed, e.g., !*.txt
matches everything but text files.['*.json', '*.js']
includes all JavaScript and Json files.
['!.git', '!node_modules']
includes all directories except the '.git' and 'node_modules'.directoryFilter: ['!.git']
: filter to include/exclude directories found and to recurse into. Directories that do not pass a filter will not be recursed into.depth: 5
: depth at which to stop recursing even if more subdirectories are foundtype: 'files'
: determines if data events on the stream should be emitted for 'files'
(default), 'directories'
, 'files_directories'
, or 'all'
. Setting to 'all'
will also include entries for other types of file descriptors like character devices, unix sockets and named pipes.alwaysStat: false
: always return stats
property for every file. Default is false
, readdirp will return Dirent
entries. Setting it to true
can double readdir execution time - use it only when you need file size
, mtime
etc. Cannot be enabled on node <10.10.0.lstat: false
: include symlink entries in the stream along with files. When true
, fs.lstat
would be used instead of fs.stat
EntryInfo
Has the following properties:
path: 'assets/javascripts/react.js'
: path to the file/directory (relative to given root)fullPath: '/Users/dev/projects/app/assets/javascripts/react.js'
: full path to the file/directory foundbasename: 'react.js'
: name of the file/directorydirent: fs.Dirent
: built-in dir entry object - only with alwaysStat: false
stats: fs.Stats
: built in stat object - only with alwaysStat: true
highWaterMark
option. Fixes race conditions related to for-await
looping.bigint
support to stat
output on Windows. This is backwards-incompatible for some cases. Be careful. It you use it incorrectly, you'll see "TypeError: Cannot mix BigInt and other types, use explicit conversions".readdirp(options)
to readdirp(root, options)
entryType
option to type
entryType: 'both'
to 'files_directories'
EntryInfo
stat
to stats
alwaysStat: true
dirent
is emitted instead of stats
by default with alwaysStat: false
name
to basename
parentDir
and fullParentDir
propertiesCopyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com)
MIT License, see LICENSE file.
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
no dangerous workflow patterns detected
Reason
all dependencies are pinned
Details
Reason
license file detected
Details
Reason
1 existing vulnerabilities detected
Details
Reason
Found 2/29 approved changesets -- score normalized to 0
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Score
Last Scanned on 2025-07-07
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More