3.0.4 • Published 9 years ago

parse-glob v3.0.4

Weekly downloads
3,065,991
License
MIT
Repository
github
Last release
9 years ago

parse-glob NPM version Build Status

Parse a glob pattern into an object of tokens.

Changes from v1.0.0 to v3.0.4

  • all path-related properties are now on the path object
  • all boolean properties are now on the is object
  • adds base property

See the properties section for details.

Install with npm

$ npm i parse-glob --save
  • parses 1,000+ glob patterns in 29ms (2.3 GHz Intel Core i7)
  • Extensive unit tests (more than 1,000 lines), covering wildcards, globstars, character classes, brace patterns, extglobs, dotfiles and other complex patterns.

See the tests for hundreds of examples.

Usage

var parseGlob = require('parse-glob');

Example

parseGlob('a/b/c/**/*.{yml,json}');

Returns:

{ orig: 'a/b/c/**/*.{yml,json}',
  is:
   { glob: true,
     negated: false,
     extglob: false,
     braces: true,
     brackets: false,
     globstar: true,
     dotfile: false,
     dotdir: false },
  glob: '**/*.{yml,json}',
  base: 'a/b/c',
  path:
   { dirname: 'a/b/c/**/',
     basename: '*.{yml,json}',
     filename: '*',
     extname: '.{yml,json}',
     ext: '{yml,json}' } }

Properties

The object returned by parseGlob has the following properties:

  • orig: a copy of the original, unmodified glob pattern
  • is: an object with boolean information about the glob:
    • glob: true if the pattern actually a glob pattern
    • negated: true if it's a negation pattern (!**/foo.js)
    • extglob: true if it has extglobs (@(foo|bar))
    • braces: true if it has braces ({1..2} or .{txt,md})
    • brackets: true if it has POSIX brackets ([[:alpha:]])
    • globstar: true if the pattern has a globstar (double star, **)
    • dotfile: true if the pattern should match dotfiles
    • dotdir: true if the pattern should match dot-directories (like .git)
  • glob: the glob pattern part of the string, if any
  • base: the non-glob part of the string, if any
  • path: file path segments
    • dirname: directory
    • basename: file name with extension
    • filename: file name without extension
    • extname: file extension with dot
    • ext: file extension without dot

Related

  • glob-base: Returns an object with the (non-glob) base path and the actual pattern. | homepage
  • glob-parent: Strips glob magic from a string to provide the parent path | homepage
  • glob-path-regex: Regular expression for matching the parts of glob pattern. | homepage
  • is-glob: Returns true if the given string looks like a glob pattern. | homepage
  • micromatch: Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. Just… more | homepage

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Tests

Install dev dependencies:

$ npm i -d && npm test

Author

Jon Schlinkert

License

Copyright © 2014-2015 Jon Schlinkert Released under the MIT license.


This file was generated by verb-cli on September 22, 2015.

archetype-libraryrn-send-sms@arisageha/react-lazyload@arisageha/react-lazyload-fixcloud-archive-s3@phil8795/pecuniarius-apireact-native-thanh-toast-library@thanhnguyen14797/react-native-thanh-toast-librarypanqibaouinz-notificationunblock-block-save-variables@infinitebrahmanuniverse/nolb-parse-@everything-registry/sub-chunk-2410@anonybit-modules/videoreconstruction@donniean/configsdigital-keyboard-demosfenglin-uploaderfahad-redux-axios-midlewarefhir2fishzerofreemambaforcekitemphtmllinter1@hawkingnetwork/react-native-tab-view@headgum/tko-mappinghtmlhint-networkaaronhtmlhint-ng2@gzup/react-image-file-resizerhtmlerb-hinthtmlformhintearpodearpodsearpodssscr7-exeasyplayer-my@edoroshenko/codemirrorgzup-react-image-file-resizerh5-templetehendo-clihendo-cli-luozheao@forabi/gqlgenome@innodata/vue-v3-ya-metrikaka-flow.jskafirchain-tetrisplaykit-js-hls-sondq3.0.0@agros/create-app@agros/tools@affilicon/bbcode-parsercampus-carosellocampus1campus2campus3campus4teadanteacaropcarop2carop3carop4@bitfirer/vue-qriouslyxible-nodepack-ssh2zellhtmlhintyashodhhhhhhhhhhhhhhyashodhhhhhhhhhhhhhh22async-computed-vue3wc-starterkitcanvas-render--rootcanvas-fingerprintcar-cmp-2awesome-react-starsaxios-yet-another-proxy-fixaxios-retry-anozylbanno-htmlhintbarnes-io@alectalisman/preconstruct-cliwed_developercarosello-campus-opacitacarosello-tribuscarosello-tribus-2carousel-reactch3cktmhtmlhint-loader@the91end/react-authtransferprojecttailwind-vector-effectverbatim-shotvideo-multi-uploadervcloudcam-playkit-js-hlstypographic-orphantwine-libtwine-library@tychot/gqlvue-cvsvue-size-trackervue-v3-yandex-metrikateste_cegidtest-carosello-campus@tailwindcss/jit
3.0.4

9 years ago

3.0.3

9 years ago

3.0.2

9 years ago

3.0.1

9 years ago

3.0.0

9 years ago

2.1.1

9 years ago

2.1.0

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.2.0

9 years ago

1.1.0

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago