Spaces:
Runtime error
Runtime error
| <p align="center"> | |
| <img src="https://github.com/terkelg/tiny-glob/raw/master/tiny-glob.png" alt="Tiny Glob" width="450" /> | |
| </p> | |
| <h1 align="center">tiny glob</h1> | |
| <p align="center"> | |
| <a href="https://npmjs.org/package/tiny-glob"> | |
| <img src="https://img.shields.io/npm/v/tiny-glob.svg" alt="version" /> | |
| </a> | |
| <a href="https://github.com/terkelg/tiny-glob/actions"> | |
| <img src="https://github.com/terkelg/tiny-glob/actions/workflows/ci.yml/badge.svg" alt="CI" /> | |
| </a> | |
| <a href="https://npmjs.org/package/tiny-glob"> | |
| <img src="https://img.shields.io/npm/dm/tiny-glob.svg" alt="downloads" /> | |
| </a> | |
| <a href="https://packagephobia.now.sh/result?p=tiny-glob"> | |
| <img src="https://packagephobia.now.sh/badge?p=tiny-glob" alt="install size" /> | |
| </a> | |
| </p> | |
| <p align="center"><b>Tiny and extremely fast library to match files and folders using glob patterns.</b></p> | |
| <br /> | |
| "Globs" is the common name for a specific type of pattern used to match files and folders. It's the patterns you type when you do stuff like `ls *.js` in your shell or put `src/*` in a `.gitignore` file. When used to match filenames, it's sometimes called a "wildcard". | |
| ## Install | |
| ``` | |
| npm install tiny-glob | |
| ``` | |
| ## Core Features | |
| - π₯ **extremely fast:** ~350% faster than [node-glob](https://github.com/isaacs/node-glob) and ~230% faster than [fast-glob](https://github.com/mrmlnc/fast-glob) | |
| - πͺ **powerful:** supports advanced globbing patterns (`ExtGlob`) | |
| - π¦ **tiny**: only ~45 LOC with 2 small dependencies | |
| - π« **friendly**: simple and easy to use api | |
| - π **cross-platform**: supports both unix and windows | |
| ## Usage | |
| ```js | |
| const glob = require('tiny-glob'); | |
| (async function(){ | |
| let files = await glob('src/*/*.{js,md}'); | |
| // => [ ... ] array of matching files | |
| })(); | |
| ``` | |
| ## API | |
| ### glob(str, options) | |
| Type: `function`<br> | |
| Returns: `Array` | |
| Return array of matching files and folders | |
| This function is `async` and returns a promise. | |
| #### str | |
| Type: `String` | |
| The glob pattern to match against. | |
| > **OBS**: Please only use forward-slashes in glob expressions. Even on [windows](#windows) | |
| #### options.cwd | |
| Type: `String`<br> | |
| Default: `'.'` | |
| Change default working directory. | |
| #### options.dot | |
| Type: `Boolean`<br> | |
| Default: `false` | |
| Allow patterns to match filenames or directories that begin with a period (`.`). | |
| #### options.absolute | |
| Type: `Boolean`<br> | |
| Default: `false` | |
| Return matches as absolute paths. | |
| #### options.filesOnly | |
| Type: `Boolean`<br> | |
| Default: `false` | |
| Skip directories and return matched files only. | |
| #### options.flush | |
| Type: `Boolean`<br> | |
| Default: `false` | |
| Flush the internal cache object. | |
| ## Windows | |
| Though Windows may use `/`, `\`, or `\\` as path separators, you can **only** use forward-slashes (`/`) when specifying glob expressions. Any back-slashes (`\`) will be interpreted as escape characters instead of path separators. | |
| This is common across many glob-based modules; see [`node-glob`](https://github.com/isaacs/node-glob#windows) for corroboration. | |
| ## Benchmarks | |
| ``` | |
| glob x 13,405 ops/sec Β±1.80% (85 runs sampled) | |
| fast-glob x 25,745 ops/sec Β±2.76% (59 runs sampled) | |
| tiny-glob x 102,658 ops/sec Β±0.79% (91 runs sampled) | |
| Fastest is tiny-glob | |
| βββββββββββββ¬ββββββββββββββββββββββββββ¬ββββββββββββββ¬βββββββββββββββββ | |
| β Name β Mean time β Ops/sec β Diff β | |
| βββββββββββββΌββββββββββββββββββββββββββΌββββββββββββββΌβββββββββββββββββ€ | |
| β glob β 0.00007459990597268128 β 13,404.843 β N/A β | |
| βββββββββββββΌββββββββββββββββββββββββββΌββββββββββββββΌβββββββββββββββββ€ | |
| β fast-glob β 0.000038842529587611705 β 25,744.976 β 92.06% faster β | |
| βββββββββββββΌββββββββββββββββββββββββββΌββββββββββββββΌβββββββββββββββββ€ | |
| β tiny-glob β 0.00000974110141018254 β 102,657.796 β 298.75% faster β | |
| βββββββββββββ΄ββββββββββββββββββββββββββ΄ββββββββββββββ΄βββββββββββββββββ | |
| ``` | |
| ## Advanced Globbing | |
| Learn more about advanced globbing | |
| - [Greg's Wiki](https://mywiki.wooledge.org/glob) | |
| - [Bash Extended Globbing](https://www.linuxjournal.com/content/bash-extended-globbing) | |
| ## License | |
| MIT Β© [Terkel Gjervig](https://terkel.com) | |