@iohub/iter
Version:
Flexible async iterators for recursive directory traversal in Node.js, with customizable filtering and path transformation
82 lines (61 loc) • 2.71 kB
Markdown
with flexible filtering and customization options.
[](https://npmjs.org/package/@iohub/iter)
[](http://packagequality.com/#?package=@iohub/iter)
[](https://npmjs.org/package/@iohub/iter)
[](https://npmjs.org/package/@iohub/iter)
[](https://packagephobia.now.sh/result?p=@iohub/iter)
[](https://github.com/hoyeungw/@iohub/iter)
[](https://npmjs.org/package/@iohub/iter)
- Async iterators for efficient directory traversal
- Flexible filtering for files and directories
- Recursive and non-recursive traversal options
- Custom path joining and transformation
- Built on native Node.js fs/promises API
```bash
npm install @iohub/iter
yarn add @iohub/iter
pnpm add @iohub/iter
```
```js
import { iterDir, iterDoc, recurDir, recurDoc, recurLot } from '@iohub/iter'
// List files in a directory
for await (const file of iterDoc('src')) {
console.log(file) // Yields file paths in src/
}
// List subdirectories
for await (const dir of iterDir('src')) {
console.log(dir) // Yields directory paths in src/
}
// Recursively list all files
for await (const file of recurDoc('src')) {
console.log(file) // Yields file paths in src/ and subdirectories
}
// Recursively list all directories
for await (const dir of recurDir('src')) {
console.log(dir) // Yields directory paths in src/ and subdirectories
}
// Group files by directory
for await (const group of recurLot('src')) {
console.log(group.dir) // Directory path
console.log(group) // Array of files in directory
}
// Custom filtering and path transformation
const options = {
doc: name => name.endsWith('.js'), // Filter files
dir: name => !name.startsWith('.'), // Filter directories
pipe: (name, dir) => `${dir}/${name}`, // Custom path joining
}
for await (const file of recurDoc.call(options, 'src')) {
console.log(file) // Yields only .js files, skipping dot directories
}
```
[ ](/LICENSE)
Copyright (c) 2019-present, Hoyeung Wong
Async directory traversal utilities