readdirp Weekly downloads

Recursive version of fs.readdir. Exposes a stream API and a promise API.

sh npm install readdirp

```javascript const readdirp = require('readdirp');

// Use streams to achieve small RAM & CPU footprint. // 1) Streams example with for-await. for await (const entry of readdirp('.')) { const {path} = entry; console.log(${JSON.stringify({path})}); }

// 2) Streams example, non for-await. // Print out all JS files along with their size within the current folder & subfolders. readdirp('.', {fileFilter: '*.js', alwaysStat: true}) .on('data', (entry) => { const {path, stats: {size}} = entry; console.log(${JSON.stringify({path, size})}); }) // Optionally call stream.destroy() in warn() in order to abort and cause 'close' to be emitted .on('warn', error => console.error('non-fatal error', error)) .on('error', error => console.error('fatal error', error)) .on('end', () => console.log('done'));

// 3) Promise example. More RAM and CPU than streams / for-await. const files = await readdirp.promise('.'); console.log(files.map(file => file.path));

// Other options. readdirp('test', { fileFilter: '.js', directoryFilter: ['!.git', '!modules'] // directoryFilter: (di) => di.basename.length === 9 type: 'files_directories', depth: 1 }); ```

For more examples, check out examples directory.

API

const stream = readdirp(root[, options])Stream API

const 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.

options

EntryInfo

Has the following properties:

Changelog

License

Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com)

MIT License, see LICENSE file.