Releases: mrmlnc/fast-glob
Releases · mrmlnc/fast-glob
3.2.5
🐛 Bug fixes
- Now this packages correctly supports ARM processors (#296, thanks @yozman).
- Fixed behavior that led to Uncaught Error when the package tried to destroy stream multiple times (#282).
- Fixed an issue with patterns that starts with the leading slash (#277).
- Related to patterns with various kinds:
/*
,/tmp/*
,//?/C:/*
. - nodelib/nodelib#54, nodelib/nodelib#63
- Related to patterns with various kinds:
📖 Documentation
⚙️ Infrastructure
3.2.4
3.2.3
3.2.2
3.2.1
3.2.0
💬 Common
- An empty pattern now causes an error (#247)
🚀 Improvements
In the #156 issue we've redesigned the deep filter, which controls the reading of directories in depth.
Previously, this filter did not use positive patterns directly (only their maximum depth). The example below shows how many extra directories we read:
{src,fixtures}/**
src → read
fixtures → read
out → read
node_modules → read
Now we apply positive patterns.
{src,fixtures}/**
src → read
fixtures → read
out → skip
node_modules → skip
Synthetic benchmark
More benchmarks can be found here.
{fixtures,out}/{first,second}/*
sync, ms | async, ms | stream, ms | |
---|---|---|---|
3.x.x | 13 | 22 | 20 |
3.2.0 | 5 | 9 | 8 |
{fixtures,out}/**
sync, ms | async, ms | stream, ms | |
---|---|---|---|
3.x.x | 37 | 49 | 52 |
3.2.0 | 6 | 10 | 12 |
Real world benchmark
Known issues
- For some cases, there is a noticeable slowdown of 3-6%.
- Patterns containing
{a..z}
(or similar) may introduce some slowdown. - Actually,
fast-glob
is 2 times slower thannode-glob
in this scenario.
We will work on this in the future.
🎉 Thanks
- @jonschlinkert for the
scan
method inpicomatch
that returns parts of the pattern. - @fisker for early beta feedback.
3.1.1
🐛 Bug fixes
Stream is not closed when the receiver is closed (#239)
Previously, we read directories in the stream, even after the receiver is closed. Now we stop reading after closing the receiver by .emit('end')
, .destroy()
or for await...of
.
const fg = require('fast-glob');
(async () => {
const stream = fg.stream('**');
for await (const entry of stream) {
console.log(entry);
return;
}
})();
Most likely, in future releases, we will improve integration with streams (#243).
3.1.0
💬 Common
- New method
isDynamicPattern
as an alternative toglob.hasMagic
(#105) - New method
escapePath
for escaping parts of the paths of the pattern (#158)
📖 Documentation
- Add documentation for
generateTasks
helper. - Fix examples for the
dot
option.
🐛 Bug Fixes
- Matching specific file is not found when pattern contains parentheses (#223)
⚠️ Now we route patterns with escape symbol to dynamic patterns
- Match subdirectories starting with
.
in{dot: false}
mode (#226)
⚙️ Infrastructure
- Move from TSLint to ESLint (#233)
3.0.4
3.0.3
💬
- Correct method for the Stream API in the documentation (#217, thanks @bluelovers)
- We have divided the benchmark into two types:
- The product benchmark is a comparison of performance relative to competitors.
- The regression benchmark is a comparison of performance relative to the previous version.
- We added a launch of both types of benchmark in CI. Automatically starts only when the master branch is built.
- Now the smoke tests are run for all API's (sync, async, stream).