Packages

fast-glob

3.3.3 · 5 Jan 2025MIT203.4M / weekRepositoryHomepagenpmAtom feed

Your version

3.0.0

major16 Jun 2019Where it was published

3.3.3 is the newest release of 3.x.

In short

7 breaking7 new2 faster2 fixed9 changed

  • breaking

    Support for the fast-glob@2 is ending.

  • breaking

    Require Node.js 8+. But we recommend using 10.10+ for performance issues.

  • breaking

    Only forward-slashes in glob expression. Previously, we convert all slashes to the forward-slashes, which did not allow the use of escaping. See pattern syntax section in the README.md file.

  • breaking

    Removed options: nobrace, noglobstar, noext, nocase, transform.

  • breaking

    The deep option now accepts only number type and default value now is Infinity instead of true.

  • breaking

    The async method was removed. Use fg(/* … */) instead.

  • breaking

    The type of returned object when the stats option is enabled is completely changed.

Release note

Summary

This release aims to fix architectural issues, increase performance and reduce size of package.

Breaking changes

Since this is a major release, we are introducing a few breaking changes:

  • breaking

    Support for the fast-glob@2 is ending.

  • breaking

    Require Node.js 8+. But we recommend using 10.10+ for performance issues.

  • breaking

    Only forward-slashes in glob expression. Previously, we convert all slashes to the forward-slashes, which did not allow the use of escaping. See pattern syntax section in the README.md file.

  • breaking

    Removed options: nobrace, noglobstar, noext, nocase, transform.

  • breaking

    Renamed options:

  • breaking

    The deep option now accepts only number type and default value now is Infinity instead of true.

  • breaking

    The async method was removed. Use fg(/* … */) instead.

  • breaking

    The type of returned object when the stats option is enabled is completely changed.

:bug: Bug fixes

  • After update from micromatch@3 to micromatch@4:

    • Incorrect matching with curly braces and globstar (#159).

    • Inaccurate comparison within a regular expression (#123, #138).

    • A very long initialization time of filters (#92).

  • Now we do not convert slashes in patterns (#173).

  • Previously, the baseNameMatch option never worked (#199).

:rocket: Improvements

:speech_balloon: Common

  • Package size after installation is decreased: 2.47MB → 0.42MB.

  • Package require time decreased: 534ms → 78ms.

:tornado: Speed

Wow! The new version is very fast. At least twice as fast as the previous version. Probably this is the fastest solution in the Node.js world. And that's not all! We will work on performance issues in the future 🐢.

  • Speed up between versions for directory with 265k entries: 5x (19s → 4s).

  • Speed up between versions for directory with 4kk entries: 4x (4m → 1m).

Look at the benchmarks section in the README.md file.

:gear: Flexibility

Also in this release we have worked on simplifying some scenarios.

Now, thanks to the new mechanism, you can get the type of entry without additional costs! Works only on Node.js 10.10+. Look at the objectMode option.

Known issues in this update