Socket
Book a DemoInstallSign in
Socket

glob-parse

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

glob-parse

Returns a parsed representation of a glob string; does not require Minimatch.

latest
npmnpm
Version
0.0.1
Version published
Weekly downloads
1.2K
-11.39%
Maintainers
1
Weekly downloads
 
Created
Source

glob-parse

Returns a parsed representation of a glob string; does not require Minimatch.

Features

  • Works on any string, does not require Minimatch or any other separate glob library.
  • Does not perform glob matching: it just parses a glob expression into segments and produces relevant metadata about those segments.
  • Pure parsing/tokenization is useful for working with glob expressions. For example:

wildglob uses glob-parse to parse the different segments of the input glob and then combines the string segments to determine where to start glob matching.

glob2base extracts a base path from a glob. It uses Minimatch to do this, but glob-parse (the .basename() function) can also be used to extract the base path from a glob.

API and examples

Basic parsing

var parse = require('glob-parse');
console.log(parse('js/*.js'));
// [ 'js/', '*', '.js' ]
console.log(parse('js/**/test/*.js'));
// [ 'js/', '**', '/test/', '*', '.js' ]

.basename()

basename() works like glob2base:

console.log(parse.basename('js/test{0..9}/*.js'));
// js/
console.log(parse.basename('js/t+(wo|est)/*.js'));
// js/
console.log(parse.basename('lib/{components,pages}/**/{test,another}/*.txt'));
// lib/

Full type annotations

Pass { full: true } to return the token type annotations.

console.log(parse('js/t[a-z]st/*.js', { full: true }));
// { parts: [ 'js/t', '[a-z]', 'st/', '*', '.js' ],
//   types: [ 'str', 'set', 'str', '*', 'str' ] }

console.log(parse('js/{src,test}/*.js', { full: true }));
// { parts: [ 'js/', '{src,test}', '/', '*', '.js' ],
//   types: [ 'str', 'brace', 'str', '*', 'str' ] }

console.log(parse('test/+(a|b|c)/a{/,bc*}/**', { full: true }));
// { parts: [ 'test/', '+(a|b|c)', '/a', '{/,bc*}', '/', '**' ],
//   types: [ 'str', 'ext', 'str', 'brace', 'str', '**' ] }

Keywords

glob

FAQs

Package last updated on 15 Jul 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts