$ gnpm install readdir-cluster
Create a cluster of workers to iterate through the filesystem
import readdirCluster, { Stat } from 'readdir-cluster'
// note that Stat is not the same as fs.Stats as it has functions removed, as it needed to be serialisable
function iterator(path: string, filename: string, stat: Stat) {
// skip directories and files that start with .
if (filename[0] === '.') return false
// do not recurse into directories
if (stat.directory) return false
}
const paths = await readdirCluster({ directory: '.', iterator })
console.log(paths)
Running readdir-cluster . returns 7388 files in 500ms
Running readdir with recursive: true returns 7388 files in 100ms
import { readdir } from 'fs'
readdir('.', { recursive: true }, (err, files) => {
if (err) console.error(err)
else if (files.length) process.stdout.write(files.join('\n') + '\n')
})
Running fdir returns 6480 files in 100ms
import { fdir } from 'fdir'
const api = new fdir().withBasePath().crawl(process.argv[2])
api.withPromise().then((files) => {
if (files.length) process.stdout.write(files.join('\n') + '\n')
})
As such, you should probably use readdir with recursive: true or fdir instead. As for why this package exists, readdir-cluster was created in 2005, recursive was added to Node.js in 2023, and fdir was created in 2020. That said, there are several issues that could potentially improve readdir-cluster performance.
npm install --global readdir-clusterreaddir-clusternpm install --save readdir-clusternpx readdir-clusterimport pkg from ('readdir-cluster')const pkg = require('readdir-cluster').defaultThis package is published with the following editions:
readdir-cluster aliases readdir-cluster/index.cjs which uses the Editions Autoloader to automatically select the correct edition for the consumer's environmentreaddir-cluster/source/index.ts is TypeScript source code with Import for modulesreaddir-cluster/edition-es2022/index.js is TypeScript compiled against ES2022 for Node.js 14 || 16 || 18 || 20 || 21 with Require for modulesreaddir-cluster/edition-es2017/index.js is TypeScript compiled against ES2017 for Node.js 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modulesreaddir-cluster/edition-es2015/index.js is TypeScript compiled against ES2015 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modulesreaddir-cluster/edition-es5/index.js is TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modulesreaddir-cluster/edition-es2017-esm/index.js is TypeScript compiled against ES2017 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modulesreaddir-cluster/edition-types/index.d.ts is TypeScript compiled Types with Import for modulesDiscover the release history by heading on over to the HISTORY.md file.
Discover how to contribute via the CONTRIBUTING.md file.
Unless stated otherwise all works are:
and licensed under:
Copyright 2013 - present © cnpmjs.org | Home |