miniglob

Minimal file globbing without dependencies; port of golang filepath

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
miniglob
1310.1.23 years ago6 years agoMinified + gzip package size for miniglob in KB

Readme

miniglob
Minimal glob JavaScript implementation ported from Go's path/filepath without any dependencies.
  • Exports two functions: glob and match
  • Supports everything that path/filepath does
  • Additionally, the glob function also supports ** for mathing any directories
  • Only requirement is a NodeJS "fs"-like module
(which can be anything exporting a readdirSync and statSync function)

Usage

import { glob, match } from 'miniglob'
console.log(glob('src/**.js'))
console.log(match("ab[b-d]", "abc"))

It's published on npm as miniglob
$ npm install miniglob

See test/test.js for more examples

glob

glob(pattern :string) : string[]

Glob returns the names of all files matching pattern. The syntax of patterns is the same as in match. The pattern may describe hierarchical names such as /usr/*/bin/ed (assuming the Separator is /).
Glob ignores file system errors such as I/O errors reading directories.

match

match(pattern :string, name :string) : boolean

Match reports whether name matches the shell file name pattern. The pattern syntax is:
pattern:
  { term }
term:
  '*'         matches any sequence of non-Separator characters
  '?'         matches any single non-Separator character
  '[' [ '^' ] { character-range } ']'
              character class (must be non-empty)
  c           matches character c (c != '*', '?', '\\', '[')
  '\\' c      matches character c

character-range:
  c           matches character c (c != '\\', '-', ']')
  '\\' c      matches character c
  lo '-' hi   matches character c for lo <= c <= hi

Match requires pattern to match all of name, not just a substring.
On Windows, escaping is disabled. Instead, '\\' is treated as path separator.