tiny-glob
    TypeScript icon, indicating that this package has built-in type declarations

    0.2.9 • Public • Published

    Tiny Glob

    tiny glob

    version CI downloads install size

    Tiny and extremely fast library to match files and folders using glob patterns.


    "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

    Install

    npm i tiny-glob

    DownloadsWeekly Downloads

    420,175

    Version

    0.2.9

    License

    MIT

    Unpacked Size

    12.1 kB

    Total Files

    7

    Last publish

    Collaborators

    • terkelg