Back to Explore

thecodrr/fdir

GitHub
1 watchersOpen source

Last release: 9 months ago

fdir is a fast directory crawler and globbing utility for NodeJS, designed to scan very large directories quickly and return matching file paths. It provides a builder-pattern API for crawling directories and supports synchronous or promise-based results, using Node’s fs and path modules (with optional manual installation of picomatch for globbing).

Project status

  • Actively maintained, with a recent upstream push on 2025-08-16 and new version tags through v6.5.0 on 2025-08-14.
  • Update cadence appears to be on the order of months, for example v6.4.6 (2025-06-10) to v6.5.0 (2025-08-14) is about two months.

AI summary generated Today

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v6.5.0

    9 months ago

    v6.5.0 adds ESM builds, restores Node 12 compatibility by replacing AbortController usage with an in-house abort mechanism, and introduces support for injecting a custom filesystem implementation. It also includes smaller internal optimizations and a fix for @types/picomatch v4.

    Features
  • v6.4.6

    12 months ago

    v6.4.6 contains a targeted fix to the directory walking logic so that crawling is not prematurely terminated when the internal currentDepth is 0. The main behavioral change is in both async and sync walkers, and the test suite expectations were adjusted to match the corrected depth handling.

    Breaking
  • v6.4.5

    5/28/2025

    This release (v6.4.5) is documented as a fix to ensure the walker callback is called only once. The code diff shows additional internal behavior changes around queueing, abort handling, and crawl depth boundaries that are not mentioned in the release notes.

    Breaking
  • v6.4.4

    4/19/2025

    v6.4.4 updates formatting tooling and fixes a crawl hang when resolving symlinks at the filesystem root. It also adjusts documentation formatting for withCallback.

  • v6.4.3

    1/17/2025

    v6.4.3 is a small bug fix release. It corrects how the exclude predicate is evaluated when symlink resolution is involved, ensuring the predicate receives the expected path value.

  • v6.4.2

    10/16/2024

    v6.4.2 is a small patch release that addresses a crawler deadlock/regression when `maxDepth` is set to a negative value. The code change ensures the internal crawl queue is properly finalized so `fdir` resolves instead of hanging.

  • v6.4.1

    10/16/2024

    v6.4.1 fixes handling of recursive symlinks to prevent infinite recursion that could crash or take too long. The implementation introduces directory-visit tracking and a recursion guard that behaves differently depending on whether symlink path resolution is enabled.

  • v6.4.0

    9/30/2024

    v6.4.0 adds the ability to exclude symlinks during crawling and introduces custom glob matching via a user-provided glob factory function. It also improves relative-path behavior for symlinks and prevents returning an empty string for the root when using relative paths. The release notes cover the main functionality, but there are a couple of code-level behavior and API surface changes that are not explicitly documented.

    Features
  • v6.3.0

    8/25/2024

    Release 6.3.0 restores support for `withSymlinks` resolving real paths via a `resolvePaths` option, and fixes a symlink path formatting bug where resolved paths could include a leading slash. Code changes introduce a new internal `useRealPaths` flag to select between two symlink resolution implementations (real-path vs original-path).

    BreakingFeatures
  • v6.2.0

    7/22/2024

    Release 6.2.0 focuses on improving directory handling when returning relative paths, specifically addressing incorrect behavior when `onlyDirs` is enabled. It also updates `picomatch` dependency expectations to support newer versions.