Full Changelog: 3.2.11...3.2.12
🐛 Bug fixes
Fixed an issue introduced in 3.2.7
related to incorrect application of patterns to entries with a trailing slash when the entry is not a directory.
Before changes:
fg.sync('**/!(*.md)')
// ['file.md', 'a/file.md', 'a/file.txt']
After fix:
fg.sync('**/!(*.md)')
// ['a/file.txt']
Thanks @AgentEnder for the issue (#357).
🚀 Improvements
This release includes performance improvements for the asynchronous method. For this method we now use an asynchronous directory traversal interface instead of using a streaming interface. This gives up to 15% acceleration for medium and large directories. The result depends a lot on hardware.
You can find the benchmark results for this release in CI here.
Here are a few of measurements on my laptop:
===> Benchmark pattern "*" with 100 launches (regression, async)
===> Max stdev: 7 | Retries: 3 | Options: {}
Name Time, ms Time stdev, % Memory, MB Memory stdev, % Entries Errors Retries
--------------------- -------- ------------- ---------- --------------- ------- ------ -------
fast-glob-current.js 4.390 0.252 6.253 0.015 4 0 1
fast-glob-previous.js 5.653 0.633 6.051 0.056 4 0 1
===> Benchmark pattern "**" with 100 launches (regression, async)
===> Max stdev: 7 | Retries: 3 | Options: {}
Name Time, ms Time stdev, % Memory, MB Memory stdev, % Entries Errors Retries
--------------------- -------- ------------- ---------- --------------- ------- ------ -------
fast-glob-current.js 34.587 1.287 10.654 0.607 11835 0 1
fast-glob-previous.js 41.972 2.086 10.236 1.224 11835 0 1