0.0.4 • Published 7 months ago

@iohub/iter v0.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

@iohub/iter

Async directory traversal utilities with flexible filtering and customization options.

npm version npm quality npm download npm total-download size github commit activity npm license

Features

  • 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

Installation

# npm
npm install @iohub/iter

# yarn
yarn add @iohub/iter

# pnpm
pnpm add @iohub/iter

Usage

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
}

Meta

LICENSE (MIT)

Copyright (c) 2019-present, Hoyeung Wong

0.0.4

7 months ago

0.0.3

7 months ago

0.0.2

7 months ago

0.0.1

7 months ago