@teammy/server 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/main.js +10936 -6840
- package/dist/native-pi-entry.js +14 -1
- package/dist/project-pi-entry.js +51 -11
- package/dist/runtime/workflows/task-bootstrap/prompt.md +2 -0
- package/dist/web/assets/Assistant-BeYamS0w.js +1 -0
- package/dist/web/assets/Assistant-C7QfFYLo.css +1 -0
- package/dist/web/assets/Dashboard-BzmrE4Xv.js +1 -0
- package/dist/web/assets/Files-BvCYgjVV.js +1 -0
- package/dist/web/assets/{Markdown-oZagG-wy.js → Markdown-BRPMsc7D.js} +4 -4
- package/dist/web/assets/Materials-CK-mbNmo.css +1 -0
- package/dist/web/assets/Materials-DK3CkLr0.js +6 -0
- package/dist/web/assets/Sessions-D_579m-e.js +1 -0
- package/dist/web/assets/WorkspaceTree-fMDtGIFa.js +1 -0
- package/dist/web/assets/{file-links-CD346_jf.js → file-links-I1K8CwVK.js} +1 -1
- package/dist/web/assets/{index-Be5hGscJ.css → index-CTIAGUGG.css} +1 -1
- package/dist/web/assets/index-DQsx-e5d.js +66 -0
- package/dist/web/downloads/teammy-skill.zip +0 -0
- package/dist/web/index.html +2 -2
- package/node_modules/@isaacs/nonrecursive-glob-match/LICENSE.md +55 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/README.md +333 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/commonjs/index.d.ts +114 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/commonjs/index.d.ts.map +1 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/commonjs/index.js +762 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/commonjs/index.js.map +1 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/commonjs/index.min.js +3 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/commonjs/index.min.js.map +7 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/commonjs/package.json +3 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/commonjs/parse-class.d.ts +4 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/commonjs/parse-class.d.ts.map +1 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/commonjs/parse-class.js +142 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/commonjs/parse-class.js.map +1 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/esm/index.d.ts +114 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/esm/index.d.ts.map +1 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/esm/index.js +758 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/esm/index.js.map +1 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/esm/index.min.js +3 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/esm/index.min.js.map +7 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/esm/package.json +3 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/esm/parse-class.d.ts +4 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/esm/parse-class.d.ts.map +1 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/esm/parse-class.js +138 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/dist/esm/parse-class.js.map +1 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/package.json +56 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/src/index.ts +900 -0
- package/node_modules/@isaacs/nonrecursive-glob-match/src/parse-class.ts +158 -0
- package/node_modules/glob/README.md +388 -214
- package/node_modules/glob/dist/commonjs/glob.d.ts +20 -11
- package/node_modules/glob/dist/commonjs/glob.d.ts.map +1 -1
- package/node_modules/glob/dist/commonjs/glob.js +22 -29
- package/node_modules/glob/dist/commonjs/glob.js.map +1 -1
- package/node_modules/glob/dist/commonjs/has-magic.d.ts +1 -1
- package/node_modules/glob/dist/commonjs/has-magic.d.ts.map +1 -1
- package/node_modules/glob/dist/commonjs/has-magic.js +1 -4
- package/node_modules/glob/dist/commonjs/has-magic.js.map +1 -1
- package/node_modules/glob/dist/commonjs/ignore.d.ts +16 -4
- package/node_modules/glob/dist/commonjs/ignore.d.ts.map +1 -1
- package/node_modules/glob/dist/commonjs/ignore.js +24 -4
- package/node_modules/glob/dist/commonjs/ignore.js.map +1 -1
- package/node_modules/glob/dist/commonjs/index.d.ts +3 -2
- package/node_modules/glob/dist/commonjs/index.d.ts.map +1 -1
- package/node_modules/glob/dist/commonjs/index.js.map +1 -1
- package/node_modules/glob/dist/commonjs/index.min.js +2 -3
- package/node_modules/glob/dist/commonjs/index.min.js.map +4 -4
- package/node_modules/glob/dist/commonjs/pattern.d.ts +10 -3
- package/node_modules/glob/dist/commonjs/pattern.d.ts.map +1 -1
- package/node_modules/glob/dist/commonjs/pattern.js +27 -15
- package/node_modules/glob/dist/commonjs/pattern.js.map +1 -1
- package/node_modules/glob/dist/commonjs/processor.d.ts +23 -10
- package/node_modules/glob/dist/commonjs/processor.d.ts.map +1 -1
- package/node_modules/glob/dist/commonjs/processor.js +36 -23
- package/node_modules/glob/dist/commonjs/processor.js.map +1 -1
- package/node_modules/glob/dist/commonjs/walker.d.ts +19 -17
- package/node_modules/glob/dist/commonjs/walker.d.ts.map +1 -1
- package/node_modules/glob/dist/commonjs/walker.js +50 -35
- package/node_modules/glob/dist/commonjs/walker.js.map +1 -1
- package/node_modules/glob/dist/esm/glob.d.ts +20 -11
- package/node_modules/glob/dist/esm/glob.d.ts.map +1 -1
- package/node_modules/glob/dist/esm/glob.js +22 -29
- package/node_modules/glob/dist/esm/glob.js.map +1 -1
- package/node_modules/glob/dist/esm/has-magic.d.ts +1 -1
- package/node_modules/glob/dist/esm/has-magic.d.ts.map +1 -1
- package/node_modules/glob/dist/esm/has-magic.js +1 -4
- package/node_modules/glob/dist/esm/has-magic.js.map +1 -1
- package/node_modules/glob/dist/esm/ignore.d.ts +16 -4
- package/node_modules/glob/dist/esm/ignore.d.ts.map +1 -1
- package/node_modules/glob/dist/esm/ignore.js +25 -5
- package/node_modules/glob/dist/esm/ignore.js.map +1 -1
- package/node_modules/glob/dist/esm/index.d.ts +3 -2
- package/node_modules/glob/dist/esm/index.d.ts.map +1 -1
- package/node_modules/glob/dist/esm/index.js.map +1 -1
- package/node_modules/glob/dist/esm/index.min.js +2 -3
- package/node_modules/glob/dist/esm/index.min.js.map +4 -4
- package/node_modules/glob/dist/esm/pattern.d.ts +10 -3
- package/node_modules/glob/dist/esm/pattern.d.ts.map +1 -1
- package/node_modules/glob/dist/esm/pattern.js +27 -15
- package/node_modules/glob/dist/esm/pattern.js.map +1 -1
- package/node_modules/glob/dist/esm/processor.d.ts +23 -10
- package/node_modules/glob/dist/esm/processor.d.ts.map +1 -1
- package/node_modules/glob/dist/esm/processor.js +36 -23
- package/node_modules/glob/dist/esm/processor.js.map +1 -1
- package/node_modules/glob/dist/esm/walker.d.ts +19 -17
- package/node_modules/glob/dist/esm/walker.d.ts.map +1 -1
- package/node_modules/glob/dist/esm/walker.js +51 -36
- package/node_modules/glob/dist/esm/walker.js.map +1 -1
- package/node_modules/glob/package.json +28 -12
- package/node_modules/glob/src/glob.ts +655 -0
- package/node_modules/glob/src/has-magic.ts +23 -0
- package/node_modules/glob/src/ignore.ts +162 -0
- package/node_modules/glob/src/index.ts +225 -0
- package/node_modules/glob/src/pattern.ts +286 -0
- package/node_modules/glob/src/processor.ts +333 -0
- package/node_modules/glob/src/walker.ts +523 -0
- package/node_modules/minimatch/README.md +125 -107
- package/node_modules/minimatch/dist/commonjs/index.d.ts +49 -38
- package/node_modules/minimatch/dist/commonjs/index.d.ts.map +1 -1
- package/node_modules/minimatch/dist/commonjs/index.js +782 -359
- package/node_modules/minimatch/dist/commonjs/index.js.map +1 -1
- package/node_modules/minimatch/dist/esm/index.d.ts +49 -38
- package/node_modules/minimatch/dist/esm/index.d.ts.map +1 -1
- package/node_modules/minimatch/dist/esm/index.js +781 -356
- package/node_modules/minimatch/dist/esm/index.js.map +1 -1
- package/node_modules/minimatch/package.json +5 -4
- package/node_modules/path-scurry/README.md +0 -1
- package/node_modules/path-scurry/dist/commonjs/index.d.ts +7 -0
- package/node_modules/path-scurry/dist/commonjs/index.d.ts.map +1 -1
- package/node_modules/path-scurry/dist/commonjs/index.js +59 -21
- package/node_modules/path-scurry/dist/commonjs/index.js.map +1 -1
- package/node_modules/path-scurry/dist/esm/index.d.ts +7 -0
- package/node_modules/path-scurry/dist/esm/index.d.ts.map +1 -1
- package/node_modules/path-scurry/dist/esm/index.js +42 -14
- package/node_modules/path-scurry/dist/esm/index.js.map +1 -1
- package/node_modules/path-scurry/package.json +4 -4
- package/package.json +2 -1
- package/dist/web/assets/Assistant-B3h2yQF3.css +0 -1
- package/dist/web/assets/Assistant-Dm_p8EZl.js +0 -1
- package/dist/web/assets/Dashboard-fwW9NxcC.js +0 -1
- package/dist/web/assets/Files-D-KCDWmO.js +0 -1
- package/dist/web/assets/Sessions-BQhGiLvz.js +0 -1
- package/dist/web/assets/WorkspaceTree-B9733pV3.js +0 -1
- package/dist/web/assets/index-BiiPuwDi.js +0 -66
- package/node_modules/minimatch/dist/commonjs/ast.d.ts +0 -22
- package/node_modules/minimatch/dist/commonjs/ast.d.ts.map +0 -1
- package/node_modules/minimatch/dist/commonjs/ast.js +0 -845
- package/node_modules/minimatch/dist/commonjs/ast.js.map +0 -1
- package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +0 -8
- package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +0 -1
- package/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -150
- package/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +0 -1
- package/node_modules/minimatch/dist/esm/ast.d.ts +0 -22
- package/node_modules/minimatch/dist/esm/ast.d.ts.map +0 -1
- package/node_modules/minimatch/dist/esm/ast.js +0 -841
- package/node_modules/minimatch/dist/esm/ast.js.map +0 -1
- package/node_modules/minimatch/dist/esm/brace-expressions.d.ts +0 -8
- package/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +0 -1
- package/node_modules/minimatch/dist/esm/brace-expressions.js +0 -146
- package/node_modules/minimatch/dist/esm/brace-expressions.js.map +0 -1
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Match files using the patterns the shell uses.
|
|
4
4
|
|
|
5
|
-
The most correct and
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
The safest ([no ReDoS](#redos-protection)), most correct, and
|
|
6
|
+
second fastest glob implementation in JavaScript. (See
|
|
7
|
+
[**Comparison to Other JavaScript Glob
|
|
8
|
+
Implementations**](#comparison-to-other-javascript-glob-implementations)
|
|
8
9
|
at the bottom of this readme.)
|
|
9
10
|
|
|
10
11
|
![a fun cartoon logo made of glob
|
|
@@ -381,6 +382,17 @@ share the previously loaded cache.
|
|
|
381
382
|
|
|
382
383
|
- `noext` Do not match "extglob" patterns such as `+(a|b)`.
|
|
383
384
|
|
|
385
|
+
- `normalize` Normalize unicode in the pattern, and in the file
|
|
386
|
+
names that it is matched against, with this form: `'NFC'`,
|
|
387
|
+
`'NFD'`, `'NFKC'`, or `'NFKD'`. `true` means `'NFC'`. A char
|
|
388
|
+
such as `é` can be one code point, or `e` followed by a
|
|
389
|
+
combining accent, and some file systems (such as on macOS) can
|
|
390
|
+
give names in either form. This is passed to minimatch, so it
|
|
391
|
+
applies to the portions of the pattern with magic, and to the
|
|
392
|
+
`ignore` patterns. The portions of the pattern without magic
|
|
393
|
+
are looked up with path-scurry, which already compares the
|
|
394
|
+
names of the entries that it knows in their `'NFKD'` form.
|
|
395
|
+
|
|
384
396
|
- `nocase` Perform a case-insensitive match. This defaults to
|
|
385
397
|
`true` on macOS and Windows systems, and `false` on all others.
|
|
386
398
|
|
|
@@ -391,9 +403,9 @@ share the previously loaded cache.
|
|
|
391
403
|
> `false` on case-insensitive file systems, then the walk may
|
|
392
404
|
> return more or less results than expected.
|
|
393
405
|
>
|
|
394
|
-
> As a shortcut
|
|
395
|
-
>
|
|
396
|
-
>
|
|
406
|
+
> As a shortcut, `Glob` will use string portions as-is to
|
|
407
|
+
> `readdir()` calls while doing its traversal, in place of making
|
|
408
|
+
> a case-insensitive matcher for each of them. If you are setting a `nocase: true` match on a
|
|
397
409
|
> file system that is in fact case sensitive, then this will
|
|
398
410
|
> result in matches not being found that you might expect,
|
|
399
411
|
> because for example the pattern `Foo/*` will fail to read the
|
|
@@ -440,6 +452,8 @@ share the previously loaded cache.
|
|
|
440
452
|
a glob pattern or array of glob patterns to exclude from
|
|
441
453
|
matches. To ignore all children within a directory, as well
|
|
442
454
|
as the entry itself, append `'/**'` to the ignore pattern.
|
|
455
|
+
Ignore patterns that start with `/` start at the same place as
|
|
456
|
+
other patterns that start with `/` (see the `root` option).
|
|
443
457
|
|
|
444
458
|
If an object is provided that has `ignored(path)` and/or
|
|
445
459
|
`childrenIgnored(path)` methods, then these methods will be
|
|
@@ -545,8 +559,8 @@ share the previously loaded cache.
|
|
|
545
559
|
'a/b/c/d/e/f',
|
|
546
560
|
|
|
547
561
|
// this pattern is more complicated! It must to various readdir()
|
|
548
|
-
// calls and test the results against
|
|
549
|
-
//
|
|
562
|
+
// calls and test the results against the pattern, and that is
|
|
563
|
+
// certainly going to take a little bit longer.
|
|
550
564
|
//
|
|
551
565
|
// So, later on, it encounters a match at 'a/b/c/d/e', but it's too
|
|
552
566
|
// late to ignore a/b/c/d/e/f, because it's already been emitted.
|
|
@@ -632,9 +646,8 @@ path separators (ie, `/` on all platforms, and `\` on Windows).
|
|
|
632
646
|
### Dots
|
|
633
647
|
|
|
634
648
|
If a file or directory path portion has a `.` as the first
|
|
635
|
-
character, then it will
|
|
636
|
-
|
|
637
|
-
character.
|
|
649
|
+
character, then it will only match a portion of the pattern if a
|
|
650
|
+
literal `.` in the pattern matches that first character.
|
|
638
651
|
|
|
639
652
|
For example, the pattern `a/.*/c` would match the file at
|
|
640
653
|
`a/.b/c`. However the pattern `a/*/c` would not, because `*` does
|
|
@@ -696,6 +709,28 @@ classes) style class patterns are supported and Unicode-aware,
|
|
|
696
709
|
but `[=c=]` (locale-specific character collation weight), and
|
|
697
710
|
`[.symbol.]` (collating symbol), are not.
|
|
698
711
|
|
|
712
|
+
Each portion of a pattern is matched by
|
|
713
|
+
[minimatch](https://github.com/isaacs/minimatch), with Bash 5 as
|
|
714
|
+
the reference, and patterns are never compiled to regular
|
|
715
|
+
expressions. These are the known differences from Bash:
|
|
716
|
+
|
|
717
|
+
- If `dot` is not set, a portion of a pattern can match a file
|
|
718
|
+
name that starts with `.` when extglobs before a literal `.`
|
|
719
|
+
match the empty string. For example, `@(|x).*` matches `.a`.
|
|
720
|
+
Bash does not match these dotfiles.
|
|
721
|
+
- If an extglob such as `?(a` is not closed, Bash matches the
|
|
722
|
+
whole pattern as a literal string. In this module, only the
|
|
723
|
+
`?(` is literal, and the rest of the pattern is still matched
|
|
724
|
+
as a glob.
|
|
725
|
+
- A pattern is split into portions on every `/`, including a `/`
|
|
726
|
+
inside an extglob, so `@(a|b/c)/*` has an extglob that is not
|
|
727
|
+
closed. Bash keeps the extglob whole, and drops each alternative
|
|
728
|
+
with a `/` in it, as no file name can contain a `/`. So in Bash,
|
|
729
|
+
`@(a|b/c)/*` is the same as `@(a)/*`.
|
|
730
|
+
- With `nocase`, case is folded with Unicode simple case folding,
|
|
731
|
+
one code point at a time. Bash uses the case functions of the C
|
|
732
|
+
library for the current locale.
|
|
733
|
+
|
|
699
734
|
### Repeated Slashes
|
|
700
735
|
|
|
701
736
|
Unlike Bash and zsh, repeated `/` are always coalesced into a
|
|
@@ -767,6 +802,56 @@ starts with `/`, then the traversal will run on the root of the
|
|
|
767
802
|
drive provided as the `cwd` option. (That is, it is the result of
|
|
768
803
|
`path.resolve('/')`.)
|
|
769
804
|
|
|
805
|
+
## ReDoS Protection
|
|
806
|
+
|
|
807
|
+
Many glob implementations make a regular expression from each
|
|
808
|
+
pattern. A pattern such as `a*a*a*a*a*a*a*a*a*a*a`, tested against
|
|
809
|
+
a name such as `aaaaaaaaaaaaaaaaaaaaaaaaaaaaab` that does not
|
|
810
|
+
match, can make a backtracking regular expression engine try each
|
|
811
|
+
way that the `*` characters can split the name. The time that
|
|
812
|
+
this takes grows exponentially with the length of the name, so a
|
|
813
|
+
pattern from an untrusted source can stop a process for minutes
|
|
814
|
+
or more. This is a Regular Expression Denial of Service (ReDoS).
|
|
815
|
+
|
|
816
|
+
This module never makes a regular expression from a pattern.
|
|
817
|
+
Each portion of a pattern between `/` characters that has magic
|
|
818
|
+
is matched by a `Matcher` from
|
|
819
|
+
[@isaacs/nonrecursive-glob-match](http://npm.im/@isaacs/nonrecursive-glob-match).
|
|
820
|
+
A `Matcher` is not a `RegExp`, and it does not backtrack. It tests
|
|
821
|
+
all of the ways that the pattern can match at the same time, in
|
|
822
|
+
one pass over the name, so no pattern can make it try the ways one
|
|
823
|
+
after another. The time to match a name grows no faster than its
|
|
824
|
+
length times the size of the portion of the pattern, for each
|
|
825
|
+
kind of pattern, including nested and negated extglobs such as
|
|
826
|
+
`+(a|*(b|!(c)))`. The pattern above matches or fails in about a
|
|
827
|
+
millisecond.
|
|
828
|
+
|
|
829
|
+
The only regular expressions that a `Matcher` uses are for `[...]`
|
|
830
|
+
classes and case folding, and each of them only tests one
|
|
831
|
+
character at a time, so they can not backtrack over a name.
|
|
832
|
+
|
|
833
|
+
These limits also apply:
|
|
834
|
+
|
|
835
|
+
- The states that a `Matcher` reaches are cached, so that names
|
|
836
|
+
are matched faster, but the cache has a fixed size. When it is
|
|
837
|
+
full, it is cleared.
|
|
838
|
+
- Brace expansion makes no more than `braceExpandMax` patterns
|
|
839
|
+
(10,000 by default), so a pattern such as `{1..1000000}` can not
|
|
840
|
+
use an unbounded amount of memory.
|
|
841
|
+
- A pattern can have at most 65,536 characters. A longer pattern
|
|
842
|
+
throws an error.
|
|
843
|
+
- An `ignore` pattern with many `**` portions that are not next to
|
|
844
|
+
each other is matched with a limit on how deeply minimatch
|
|
845
|
+
recurses (200 by default). Past that limit, a path is not
|
|
846
|
+
treated as a match, so that path is not ignored.
|
|
847
|
+
|
|
848
|
+
The time that a walk takes still depends on the file system. A
|
|
849
|
+
pattern such as `**` walks every directory under the `cwd`, so if
|
|
850
|
+
the patterns come from an untrusted source, set the `cwd` to the
|
|
851
|
+
folder that they can search, and use `maxDepth` and an abort
|
|
852
|
+
`signal` to limit the walk. Symbolic links to directories are not
|
|
853
|
+
followed by `**` unless the `follow` option is set.
|
|
854
|
+
|
|
770
855
|
## Race Conditions
|
|
771
856
|
|
|
772
857
|
Glob searching, by its very nature, is susceptible to race
|
|
@@ -821,6 +906,10 @@ npm run test-regen
|
|
|
821
906
|
# run the benchmarks
|
|
822
907
|
npm run bench
|
|
823
908
|
|
|
909
|
+
# run the benchmarks in a Docker container that is limited to 4
|
|
910
|
+
# CPUs and 8GB of memory, a few times, and print the medians
|
|
911
|
+
npm run bench:docker
|
|
912
|
+
|
|
824
913
|
# to profile javascript
|
|
825
914
|
npm run prof
|
|
826
915
|
```
|
|
@@ -833,8 +922,8 @@ npm run prof
|
|
|
833
922
|
Bash pattern expansion semantics, and as fast as possible
|
|
834
923
|
within that constraint, _use this module_.
|
|
835
924
|
- If you are reasonably sure that the patterns you will encounter
|
|
836
|
-
are relatively simple, and want the
|
|
837
|
-
|
|
925
|
+
are relatively simple, and want the fastest sync glob matcher
|
|
926
|
+
out there, _use [fast-glob](http://npm.im/fast-glob)_.
|
|
838
927
|
- If you are reasonably sure that the patterns you will encounter
|
|
839
928
|
are relatively simple, and want the convenience of
|
|
840
929
|
automatically respecting `.gitignore` files, _use
|
|
@@ -855,15 +944,17 @@ benefits and drawbacks.
|
|
|
855
944
|
|
|
856
945
|
Both have very nice APIs and are reasonably fast.
|
|
857
946
|
|
|
858
|
-
`fast-glob` is, as far as I am aware, the fastest glob
|
|
947
|
+
`fast-glob` is, as far as I am aware, the fastest sync glob
|
|
859
948
|
implementation in JavaScript today. However, there are many
|
|
860
949
|
cases where the choices that `fast-glob` makes in pursuit of
|
|
861
950
|
speed mean that its results differ from the results returned by
|
|
862
951
|
Bash and other sh-like shells, which may be surprising.
|
|
863
952
|
|
|
864
|
-
In
|
|
865
|
-
|
|
866
|
-
|
|
953
|
+
In the [benchmarks below](#benchmark-results), which walk over
|
|
954
|
+
200k files nested 4 directories deep, the sync `fast-glob` takes
|
|
955
|
+
about 25% less time than this module, and the async `fast-glob`
|
|
956
|
+
takes about 5% more, for the patterns where they return the same
|
|
957
|
+
results[1](#fn-webscale). However, there are some inconsistencies
|
|
867
958
|
with Bash matching behavior that this module does not suffer
|
|
868
959
|
from:
|
|
869
960
|
|
|
@@ -878,10 +969,12 @@ from:
|
|
|
878
969
|
- Extglob patterns are allowed to contain `/` characters.
|
|
879
970
|
|
|
880
971
|
Globby exhibits all of the same pattern semantics as fast-glob,
|
|
881
|
-
(as it is a wrapper around fast-glob)
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
972
|
+
(as it is a wrapper around fast-glob). In the benchmarks below,
|
|
973
|
+
the sync `globby` takes about 10% less time than this module, and
|
|
974
|
+
the async `globby` takes about 15% more, for the patterns where
|
|
975
|
+
they return the same results. It takes about 10-20% more time
|
|
976
|
+
than `fast-glob`. However, it adds some API conveniences that may
|
|
977
|
+
be worth the costs.
|
|
885
978
|
|
|
886
979
|
- Support for `.gitignore` and other ignore files.
|
|
887
980
|
- Support for negated globs (ie, patterns starting with `!`
|
|
@@ -908,296 +1001,377 @@ course.</small>
|
|
|
908
1001
|
|
|
909
1002
|
### Benchmark Results
|
|
910
1003
|
|
|
1004
|
+
These are from `npm run bench:docker`, which runs the benchmarks
|
|
1005
|
+
in a Linux Docker container that is limited to 4 CPUs and 8GB of
|
|
1006
|
+
memory, with the test files in memory. Each time is the median of
|
|
1007
|
+
3 runs, and includes starting node.
|
|
1008
|
+
|
|
911
1009
|
The first number is time, smaller is better.
|
|
912
1010
|
|
|
913
|
-
The second number is the count of results returned.
|
|
1011
|
+
The second number is the count of results returned. The totals at
|
|
1012
|
+
the end are over all of the patterns, including the ones where the
|
|
1013
|
+
implementations return different results.
|
|
914
1014
|
|
|
915
1015
|
```
|
|
1016
|
+
--- pattern: '{0000,0,1111,1}/{0000,0,1111,1}/{0000,0,1111,1}/**' ---
|
|
1017
|
+
~~ sync ~~
|
|
1018
|
+
fast-glob sync 0m0.046s 1600
|
|
1019
|
+
globby sync 0m0.050s 1600
|
|
1020
|
+
fs.globSync 0m0.040s 1776
|
|
1021
|
+
current globSync mjs 0m0.048s 1776
|
|
1022
|
+
current glob syncStream 0m0.046s 1776
|
|
1023
|
+
~~ async ~~
|
|
1024
|
+
fast-glob async 0m0.047s 1600
|
|
1025
|
+
globby async 0m0.053s 1600
|
|
1026
|
+
fs.glob 0m0.054s 1776
|
|
1027
|
+
current glob async mjs 0m0.050s 1776
|
|
1028
|
+
current glob stream 0m0.051s 1776
|
|
1029
|
+
|
|
916
1030
|
--- pattern: '**' ---
|
|
917
1031
|
~~ sync ~~
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
1032
|
+
fast-glob sync 0m0.340s 200002
|
|
1033
|
+
globby sync 0m0.423s 200002
|
|
1034
|
+
fs.globSync 0m0.692s 222223
|
|
1035
|
+
current globSync mjs 0m0.437s 222223
|
|
1036
|
+
current glob syncStream 0m0.408s 222223
|
|
922
1037
|
~~ async ~~
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
1038
|
+
fast-glob async 0m0.491s 200002
|
|
1039
|
+
globby async 0m0.569s 200002
|
|
1040
|
+
fs.glob 0m1.889s 222223
|
|
1041
|
+
current glob async mjs 0m0.464s 222223
|
|
1042
|
+
current glob stream 0m0.442s 222223
|
|
927
1043
|
|
|
928
1044
|
--- pattern: '**/..' ---
|
|
929
1045
|
~~ sync ~~
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
1046
|
+
fast-glob sync 0m0.260s 0
|
|
1047
|
+
globby sync 0m0.432s 200002
|
|
1048
|
+
fs.globSync 0m0.531s 2222
|
|
1049
|
+
current globSync mjs 0m0.351s 2222
|
|
1050
|
+
current glob syncStream 0m0.347s 2222
|
|
934
1051
|
~~ async ~~
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
1052
|
+
fast-glob async 0m0.381s 0
|
|
1053
|
+
globby async 0m0.569s 200002
|
|
1054
|
+
fs.glob 0m1.632s 2222
|
|
1055
|
+
current glob async mjs 0m0.373s 2222
|
|
1056
|
+
current glob stream 0m0.366s 2222
|
|
939
1057
|
|
|
940
1058
|
--- pattern: './**/0/**/0/**/0/**/0/**/*.txt' ---
|
|
941
1059
|
~~ sync ~~
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
1060
|
+
fast-glob sync 0m0.263s 10
|
|
1061
|
+
globby sync 0m0.267s 10
|
|
1062
|
+
fs.globSync 0m0.547s 10
|
|
1063
|
+
current globSync mjs 0m0.335s 10
|
|
1064
|
+
current glob syncStream 0m0.334s 10
|
|
946
1065
|
~~ async ~~
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
1066
|
+
fast-glob async 0m0.374s 10
|
|
1067
|
+
globby async 0m0.388s 10
|
|
1068
|
+
fs.glob 0m1.676s 10
|
|
1069
|
+
current glob async mjs 0m0.342s 10
|
|
1070
|
+
current glob stream 0m0.340s 10
|
|
951
1071
|
|
|
952
1072
|
--- pattern: './**/[01]/**/[12]/**/[23]/**/[45]/**/*.txt' ---
|
|
953
1073
|
~~ sync ~~
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
1074
|
+
fast-glob sync 0m0.270s 160
|
|
1075
|
+
globby sync 0m0.269s 160
|
|
1076
|
+
fs.globSync 0m0.588s 160
|
|
1077
|
+
current globSync mjs 0m0.344s 160
|
|
1078
|
+
current glob syncStream 0m0.348s 160
|
|
958
1079
|
~~ async ~~
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
1080
|
+
fast-glob async 0m0.380s 160
|
|
1081
|
+
globby async 0m0.401s 160
|
|
1082
|
+
fs.glob 0m1.715s 160
|
|
1083
|
+
current glob async mjs 0m0.346s 160
|
|
1084
|
+
current glob stream 0m0.345s 160
|
|
963
1085
|
|
|
964
1086
|
--- pattern: './**/0/**/0/**/*.txt' ---
|
|
965
1087
|
~~ sync ~~
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
1088
|
+
fast-glob sync 0m0.269s 5230
|
|
1089
|
+
globby sync 0m0.276s 5230
|
|
1090
|
+
fs.globSync 0m0.555s 5230
|
|
1091
|
+
current globSync mjs 0m0.343s 5230
|
|
1092
|
+
current glob syncStream 0m0.340s 5230
|
|
970
1093
|
~~ async ~~
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
1094
|
+
fast-glob async 0m0.381s 5230
|
|
1095
|
+
globby async 0m0.399s 5230
|
|
1096
|
+
fs.glob 0m1.662s 5230
|
|
1097
|
+
current glob async mjs 0m0.345s 5230
|
|
1098
|
+
current glob stream 0m0.344s 5230
|
|
975
1099
|
|
|
976
1100
|
--- pattern: '**/*.txt' ---
|
|
977
1101
|
~~ sync ~~
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
1102
|
+
fast-glob sync 0m0.336s 200000
|
|
1103
|
+
globby sync 0m0.425s 200000
|
|
1104
|
+
fs.globSync 0m0.697s 200000
|
|
1105
|
+
current globSync mjs 0m0.438s 200000
|
|
1106
|
+
current glob syncStream 0m0.411s 200000
|
|
982
1107
|
~~ async ~~
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
1108
|
+
fast-glob async 0m0.489s 200000
|
|
1109
|
+
globby async 0m0.563s 200000
|
|
1110
|
+
fs.glob 0m1.866s 200000
|
|
1111
|
+
current glob async mjs 0m0.467s 200000
|
|
1112
|
+
current glob stream 0m0.429s 200000
|
|
987
1113
|
|
|
988
1114
|
--- pattern: '{**/*.txt,**/?/**/*.txt,**/?/**/?/**/*.txt,**/?/**/?/**/?/**/*.txt,**/?/**/?/**/?/**/?/**/*.txt}' ---
|
|
989
1115
|
~~ sync ~~
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
1116
|
+
fast-glob sync 0m0.339s 200000
|
|
1117
|
+
globby sync 0m0.428s 200000
|
|
1118
|
+
fs.globSync 0m1.093s 200000
|
|
1119
|
+
current globSync mjs 0m0.463s 200000
|
|
1120
|
+
current glob syncStream 0m0.436s 200000
|
|
994
1121
|
~~ async ~~
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
1122
|
+
fast-glob async 0m0.485s 200000
|
|
1123
|
+
globby async 0m0.570s 200000
|
|
1124
|
+
fs.glob 0m2.303s 200000
|
|
1125
|
+
current glob async mjs 0m0.499s 200000
|
|
1126
|
+
current glob stream 0m0.480s 200000
|
|
999
1127
|
|
|
1000
1128
|
--- pattern: '**/5555/0000/*.txt' ---
|
|
1001
1129
|
~~ sync ~~
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1130
|
+
fast-glob sync 0m0.265s 1000
|
|
1131
|
+
globby sync 0m0.269s 1000
|
|
1132
|
+
fs.globSync 0m0.525s 1000
|
|
1133
|
+
current globSync mjs 0m0.356s 1000
|
|
1134
|
+
current glob syncStream 0m0.360s 1000
|
|
1006
1135
|
~~ async ~~
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1136
|
+
fast-glob async 0m0.375s 1000
|
|
1137
|
+
globby async 0m0.383s 1000
|
|
1138
|
+
fs.glob 0m1.592s 1000
|
|
1139
|
+
current glob async mjs 0m0.361s 1000
|
|
1140
|
+
current glob stream 0m0.366s 1000
|
|
1011
1141
|
|
|
1012
1142
|
--- pattern: './**/0/**/../[01]/**/0/../**/0/*.txt' ---
|
|
1013
1143
|
~~ sync ~~
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1144
|
+
fast-glob sync 0m0.261s 0
|
|
1145
|
+
globby sync 0m0.263s 0
|
|
1146
|
+
fs.globSync 0m0.754s 4880
|
|
1147
|
+
current globSync mjs 0m0.351s 4880
|
|
1148
|
+
current glob syncStream 0m0.350s 4880
|
|
1018
1149
|
~~ async ~~
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1150
|
+
fast-glob async 0m0.363s 0
|
|
1151
|
+
globby async 0m0.382s 0
|
|
1152
|
+
fs.glob 0m1.869s 4880
|
|
1153
|
+
current glob async mjs 0m0.370s 4880
|
|
1154
|
+
current glob stream 0m0.367s 4880
|
|
1023
1155
|
|
|
1024
1156
|
--- pattern: '**/????/????/????/????/*.txt' ---
|
|
1025
1157
|
~~ sync ~~
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1158
|
+
fast-glob sync 0m0.297s 100000
|
|
1159
|
+
globby sync 0m0.349s 100000
|
|
1160
|
+
fs.globSync 0m0.681s 100000
|
|
1161
|
+
current globSync mjs 0m0.404s 100000
|
|
1162
|
+
current glob syncStream 0m0.399s 100000
|
|
1030
1163
|
~~ async ~~
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1164
|
+
fast-glob async 0m0.440s 100000
|
|
1165
|
+
globby async 0m0.484s 100000
|
|
1166
|
+
fs.glob 0m1.805s 100000
|
|
1167
|
+
current glob async mjs 0m0.418s 100000
|
|
1168
|
+
current glob stream 0m0.413s 100000
|
|
1035
1169
|
|
|
1036
1170
|
--- pattern: './{**/?{/**/?{/**/?{/**/?,,,,},,,,},,,,},,,}/**/*.txt' ---
|
|
1037
1171
|
~~ sync ~~
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1172
|
+
fast-glob sync 0m0.337s 200000
|
|
1173
|
+
globby sync 0m0.427s 200000
|
|
1174
|
+
fs.globSync 0m1.264s 200000
|
|
1175
|
+
current globSync mjs 0m0.465s 200000
|
|
1176
|
+
current glob syncStream 0m0.446s 200000
|
|
1042
1177
|
~~ async ~~
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1178
|
+
fast-glob async 0m0.491s 200000
|
|
1179
|
+
globby async 0m0.562s 200000
|
|
1180
|
+
fs.glob 0m2.508s 200000
|
|
1181
|
+
current glob async mjs 0m0.494s 200000
|
|
1182
|
+
current glob stream 0m0.473s 200000
|
|
1047
1183
|
|
|
1048
1184
|
--- pattern: '**/!(0|9).txt' ---
|
|
1049
1185
|
~~ sync ~~
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1186
|
+
fast-glob sync 0m0.327s 160000
|
|
1187
|
+
globby sync 0m0.404s 160000
|
|
1188
|
+
fs.globSync 0m0.687s 180000
|
|
1189
|
+
current globSync mjs 0m0.462s 180000
|
|
1190
|
+
current glob syncStream 0m0.418s 180000
|
|
1054
1191
|
~~ async ~~
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1192
|
+
fast-glob async 0m0.474s 160000
|
|
1193
|
+
globby async 0m0.552s 160000
|
|
1194
|
+
fs.glob 0m1.876s 180000
|
|
1195
|
+
current glob async mjs 0m0.465s 180000
|
|
1196
|
+
current glob stream 0m0.436s 180000
|
|
1059
1197
|
|
|
1060
1198
|
--- pattern: './{*/**/../{*/**/../{*/**/../{*/**/../{*/**,,,,},,,,},,,,},,,,},,,,}/*.txt' ---
|
|
1061
1199
|
~~ sync ~~
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1200
|
+
fast-glob sync 0m0.262s 0
|
|
1201
|
+
globby sync 0m0.264s 0
|
|
1202
|
+
fs.globSync 0m0.933s 200000
|
|
1203
|
+
current globSync mjs 0m0.557s 200000
|
|
1204
|
+
current glob syncStream 0m0.541s 200000
|
|
1066
1205
|
~~ async ~~
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1206
|
+
fast-glob async 0m0.377s 0
|
|
1207
|
+
globby async 0m0.414s 0
|
|
1208
|
+
fs.glob 0m2.135s 200000
|
|
1209
|
+
current glob async mjs 0m0.662s 200000
|
|
1210
|
+
current glob stream 0m0.639s 200000
|
|
1071
1211
|
|
|
1072
1212
|
--- pattern: './*/**/../*/**/../*/**/../*/**/../*/**/../*/**/../*/**/../*/**/*.txt' ---
|
|
1073
1213
|
~~ sync ~~
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1214
|
+
fast-glob sync 0m0.256s 0
|
|
1215
|
+
globby sync 0m0.262s 0
|
|
1216
|
+
fs.globSync 0m0.716s 200000
|
|
1217
|
+
current globSync mjs 0m0.519s 200000
|
|
1218
|
+
current glob syncStream 0m0.494s 200000
|
|
1078
1219
|
~~ async ~~
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1220
|
+
fast-glob async 0m0.363s 0
|
|
1221
|
+
globby async 0m0.374s 0
|
|
1222
|
+
fs.glob 0m1.870s 200000
|
|
1223
|
+
current glob async mjs 0m0.565s 200000
|
|
1224
|
+
current glob stream 0m0.542s 200000
|
|
1083
1225
|
|
|
1084
1226
|
--- pattern: './*/**/../*/**/../*/**/../*/**/../*/**/*.txt' ---
|
|
1085
1227
|
~~ sync ~~
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1228
|
+
fast-glob sync 0m0.259s 0
|
|
1229
|
+
globby sync 0m0.262s 0
|
|
1230
|
+
fs.globSync 0m0.725s 200000
|
|
1231
|
+
current globSync mjs 0m0.488s 200000
|
|
1232
|
+
current glob syncStream 0m0.459s 200000
|
|
1090
1233
|
~~ async ~~
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1234
|
+
fast-glob async 0m0.366s 0
|
|
1235
|
+
globby async 0m0.379s 0
|
|
1236
|
+
fs.glob 0m1.878s 200000
|
|
1237
|
+
current glob async mjs 0m0.522s 200000
|
|
1238
|
+
current glob stream 0m0.495s 200000
|
|
1095
1239
|
|
|
1096
1240
|
--- pattern: './0/**/../1/**/../2/**/../3/**/../4/**/../5/**/../6/**/../7/**/*.txt' ---
|
|
1097
1241
|
~~ sync ~~
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1242
|
+
fast-glob sync 0m0.050s 0
|
|
1243
|
+
globby sync 0m0.055s 0
|
|
1244
|
+
fs.globSync 0m1.134s 28970
|
|
1245
|
+
current globSync mjs 0m0.290s 28970
|
|
1246
|
+
current glob syncStream 0m0.287s 28970
|
|
1102
1247
|
~~ async ~~
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1248
|
+
fast-glob async 0m0.055s 0
|
|
1249
|
+
globby async 0m0.064s 0
|
|
1250
|
+
fs.glob 0m1.745s 28970
|
|
1251
|
+
current glob async mjs 0m0.307s 28970
|
|
1252
|
+
current glob stream 0m0.301s 28970
|
|
1107
1253
|
|
|
1108
1254
|
--- pattern: './**/?/**/?/**/?/**/?/**/*.txt' ---
|
|
1109
1255
|
~~ sync ~~
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1256
|
+
fast-glob sync 0m0.305s 100000
|
|
1257
|
+
globby sync 0m0.353s 100000
|
|
1258
|
+
fs.globSync 0m0.750s 100000
|
|
1259
|
+
current globSync mjs 0m0.400s 100000
|
|
1260
|
+
current glob syncStream 0m0.403s 100000
|
|
1114
1261
|
~~ async ~~
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1262
|
+
fast-glob async 0m0.466s 100000
|
|
1263
|
+
globby async 0m0.513s 100000
|
|
1264
|
+
fs.glob 0m1.900s 100000
|
|
1265
|
+
current glob async mjs 0m0.415s 100000
|
|
1266
|
+
current glob stream 0m0.412s 100000
|
|
1119
1267
|
|
|
1120
1268
|
--- pattern: '**/*/**/*/**/*/**/*/**' ---
|
|
1121
1269
|
~~ sync ~~
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1270
|
+
fast-glob sync 0m0.371s 200000
|
|
1271
|
+
globby sync 0m0.470s 200000
|
|
1272
|
+
fs.globSync 0m0.907s 220000
|
|
1273
|
+
current globSync mjs 0m0.476s 220000
|
|
1274
|
+
current glob syncStream 0m0.452s 220000
|
|
1126
1275
|
~~ async ~~
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1276
|
+
fast-glob async 0m0.526s 200000
|
|
1277
|
+
globby async 0m0.611s 200000
|
|
1278
|
+
fs.glob 0m2.094s 220000
|
|
1279
|
+
current glob async mjs 0m0.521s 220000
|
|
1280
|
+
current glob stream 0m0.498s 220000
|
|
1131
1281
|
|
|
1132
1282
|
--- pattern: './**/*/**/*/**/*/**/*/**/*.txt' ---
|
|
1133
1283
|
~~ sync ~~
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1284
|
+
fast-glob sync 0m0.367s 200000
|
|
1285
|
+
globby sync 0m0.459s 200000
|
|
1286
|
+
fs.globSync 0m0.911s 200000
|
|
1287
|
+
current globSync mjs 0m0.481s 200000
|
|
1288
|
+
current glob syncStream 0m0.454s 200000
|
|
1138
1289
|
~~ async ~~
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1290
|
+
fast-glob async 0m0.519s 200000
|
|
1291
|
+
globby async 0m0.596s 200000
|
|
1292
|
+
fs.glob 0m2.140s 200000
|
|
1293
|
+
current glob async mjs 0m0.508s 200000
|
|
1294
|
+
current glob stream 0m0.483s 200000
|
|
1143
1295
|
|
|
1144
1296
|
--- pattern: '**/*.txt' ---
|
|
1145
1297
|
~~ sync ~~
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1298
|
+
fast-glob sync 0m0.336s 200000
|
|
1299
|
+
globby sync 0m0.425s 200000
|
|
1300
|
+
fs.globSync 0m0.698s 200000
|
|
1301
|
+
current globSync mjs 0m0.437s 200000
|
|
1302
|
+
current glob syncStream 0m0.430s 200000
|
|
1150
1303
|
~~ async ~~
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1304
|
+
fast-glob async 0m0.483s 200000
|
|
1305
|
+
globby async 0m0.565s 200000
|
|
1306
|
+
fs.glob 0m1.874s 200000
|
|
1307
|
+
current glob async mjs 0m0.462s 200000
|
|
1308
|
+
current glob stream 0m0.468s 200000
|
|
1155
1309
|
|
|
1156
1310
|
--- pattern: './**/**/**/**/**/**/**/**/*.txt' ---
|
|
1157
1311
|
~~ sync ~~
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1312
|
+
fast-glob sync 0m0.346s 200000
|
|
1313
|
+
globby sync 0m0.442s 200000
|
|
1314
|
+
fs.globSync 0m0.721s 200000
|
|
1315
|
+
current globSync mjs 0m0.437s 200000
|
|
1316
|
+
current glob syncStream 0m0.417s 200000
|
|
1162
1317
|
~~ async ~~
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1318
|
+
fast-glob async 0m0.522s 200000
|
|
1319
|
+
globby async 0m0.595s 200000
|
|
1320
|
+
fs.glob 0m1.892s 200000
|
|
1321
|
+
current glob async mjs 0m0.486s 200000
|
|
1322
|
+
current glob stream 0m0.468s 200000
|
|
1167
1323
|
|
|
1168
1324
|
--- pattern: '**/*/*.txt' ---
|
|
1169
1325
|
~~ sync ~~
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1326
|
+
fast-glob sync 0m0.343s 200000
|
|
1327
|
+
globby sync 0m0.434s 200000
|
|
1328
|
+
fs.globSync 0m0.753s 200000
|
|
1329
|
+
current globSync mjs 0m0.448s 200000
|
|
1330
|
+
current glob syncStream 0m0.446s 200000
|
|
1174
1331
|
~~ async ~~
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1332
|
+
fast-glob async 0m0.516s 200000
|
|
1333
|
+
globby async 0m0.576s 200000
|
|
1334
|
+
fs.glob 0m1.936s 200000
|
|
1335
|
+
current glob async mjs 0m0.492s 200000
|
|
1336
|
+
current glob stream 0m0.465s 200000
|
|
1179
1337
|
|
|
1180
1338
|
--- pattern: '**/*/**/*.txt' ---
|
|
1181
1339
|
~~ sync ~~
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1340
|
+
fast-glob sync 0m0.341s 200000
|
|
1341
|
+
globby sync 0m0.429s 200000
|
|
1342
|
+
fs.globSync 0m0.772s 200000
|
|
1343
|
+
current globSync mjs 0m0.451s 200000
|
|
1344
|
+
current glob syncStream 0m0.434s 200000
|
|
1186
1345
|
~~ async ~~
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1346
|
+
fast-glob async 0m0.492s 200000
|
|
1347
|
+
globby async 0m0.565s 200000
|
|
1348
|
+
fs.glob 0m1.927s 200000
|
|
1349
|
+
current glob async mjs 0m0.480s 200000
|
|
1350
|
+
current glob stream 0m0.447s 200000
|
|
1191
1351
|
|
|
1192
1352
|
--- pattern: '**/[0-9]/**/*.txt' ---
|
|
1193
1353
|
~~ sync ~~
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1354
|
+
fast-glob sync 0m0.307s 100000
|
|
1355
|
+
globby sync 0m0.347s 100000
|
|
1356
|
+
fs.globSync 0m0.667s 100000
|
|
1357
|
+
current globSync mjs 0m0.393s 100000
|
|
1358
|
+
current glob syncStream 0m0.396s 100000
|
|
1198
1359
|
~~ async ~~
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1360
|
+
fast-glob async 0m0.458s 100000
|
|
1361
|
+
globby async 0m0.490s 100000
|
|
1362
|
+
fs.glob 0m1.894s 100000
|
|
1363
|
+
current glob async mjs 0m0.433s 100000
|
|
1364
|
+
current glob stream 0m0.426s 100000
|
|
1365
|
+
|
|
1366
|
+
--- total of the medians ---
|
|
1367
|
+
fast-glob sync (sync) 7.153s
|
|
1368
|
+
globby sync (sync) 8.484s
|
|
1369
|
+
fs.globSync (sync) 18.341s
|
|
1370
|
+
current globSync mjs (sync) 10.174s
|
|
1371
|
+
current glob syncStream (sync) 9.856s
|
|
1372
|
+
fast-glob async (async) 10.314s
|
|
1373
|
+
globby async (async) 11.617s
|
|
1374
|
+
fs.glob (async) 45.732s
|
|
1375
|
+
current glob async mjs (async) 10.847s
|
|
1376
|
+
current glob stream (async) 10.496s
|
|
1203
1377
|
```
|