0.2.9 • Published 4 years ago

tiny-glob v0.2.9

Weekly downloads
377,373
License
MIT
Repository
github
Last release
4 years ago

"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 and ~230% faster than 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

const glob = require('tiny-glob');

(async function(){
    let files = await glob('src/*/*.{js,md}');
    // => [ ... ] array of matching files
})();

API

glob(str, options)

Type: function 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

options.cwd

Type: String Default: '.'

Change default working directory.

options.dot

Type: Boolean Default: false

Allow patterns to match filenames or directories that begin with a period (.).

options.absolute

Type: Boolean Default: false

Return matches as absolute paths.

options.filesOnly

Type: Boolean Default: false

Skip directories and return matched files only.

options.flush

Type: Boolean 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 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

License

MIT Ā© Terkel Gjervig

tsdx-extra@sparrowjs/builtincloud-archive-s3@rat.md/rollup-resolve@codewitchbella/microbundle@kolibrejs/builtingql_din_mod@vifjs/kit@iobroker-community-adapters/iobroker.device-watchertuum@infinitebrahmanuniverse/nolb-tiny-gexport-ts@saaspe/componentsexpand-react-bridge@everything-registry/sub-chunk-2948@leijingdao/tsdx@feltjs/gro@grogarden/grop149-tablesvelte-adapter-bun-maintained@mediakular/svelte-data-gridkjistik-fixed-component-librarybootstrap-templatephone-morkuptaleempresentationtemporal-test262-runnertemporaetsvelte-v4-i18nsvelte-migratesvelte-mediasvelte-searchable-selectsvelte-i18nsvelte-i18n-svelte5sveltekit-adapter-html-likesveltekit-adapter-chrome-extensionsvelvgwl_bpmnlint_es5webchewrenchnpm-ui-componentswrap2sveltejs-kit-reroutetehanu-tenbotehanu-terutestapasvelte-adapter-bunsvelte-adapter-deno-airshadesvelte-adapter-deno-deploysvelte-adapter-deno-deploy2svelte-adapter-deno-minisvelte-adapter-browser-extensionsvelte-component-libsvelte-crypt-textvite-plugin-multiputsdx@donapot/mylibtest@drunk/recode@cryptocode99/token-lists@crow-browser/seed@ctx-core/monorepo@ctx-core/pnpm-tools@ctx-core/ctx-core-typescript-tools@ctx-core/fontawesome-ui-svelte@cute-apocalypse/react-tree@cord-tools/cord-cli@cyriacbr/tsdx@data-visuals/create@developertown/tsdx@dev.mohe/qunit@covid19-labs/crypto@calle.wester/svelte-adapter-bun@bpmn-io/bpmnlint-generate-docs-images@boomfly/svelte-i18n@booru/vite-plugin-moleculer-runner@blinkk/root@blinkk/root-cms@pradiptakp-org/openapi-typescript@presta/source-filesystem@percent/percent-api-hooks@rtsao/create-universal-package-4ip-designjetztkartoffeldruckjxabundler@biscxit/discord-module-loaderkjistik-component-library@getloom/grosushi-sdk-ftmsveltekit-rewritezzzxxxyyy321123lumo-xoxygen-xnexus-bundlerstub-citystub-villagesurfwaxsuntmolestiaesorcerytypebundlettsdxteroshdl2
0.2.9

4 years ago

0.2.7

5 years ago

0.2.8

5 years ago

0.2.6

7 years ago

0.2.5

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.2.0

7 years ago

0.0.2

7 years ago

0.1.0

7 years ago

0.0.1

7 years ago