glob-possible-parent

1.0.0 • Public • Published

glob-possible-parent Build Status Coverage Status

Find out if a path can be a parent of a file you are looking for.

Installation

$ npm install glob-possible-parent

Usage

This library can be used with a glob matching library (micromatch, minimatch, etc.) to create a matcher that will match not only the given pattern, but also any parent directories. This can be used to optimize glob implementation, and prevent unnecessary disk access, by immediately ruling out directories which can't contain any matching files.

var gpp = require('glob-possible-parent');
var micromatch = require('micromatch'); // you can use any matcher implementation here
 
// 1. use gpp() to transform the original pattern into an array of patterns which can be passed to the matching library
// 2. create a RegExp from each pattern
// 3. join all created RegExps
 
var gppRegExp = new RegExp('^(?:\\/$|(?:' + gpp('src/js/**/*.js').map(function (pattern) {
    return micromatch.makeRe(pattern, { dot: true }).toString().slice(1, -1);
}).join('|') + '))$');
 
console.log(gppRegExp.test('src')); // => true
console.log(gppRegExp.test('src/js')); // => true
console.log(gppRegExp.test('src/js/x.js')); // => true
 
console.log(gppRegExp.test('src/css')); // => false

License

Copyright (c) 2016 Martin Kolárik. Released under the MIT license.

Dependencies (1)

Dev Dependencies (9)

Package Sidebar

Install

npm i glob-possible-parent

Weekly Downloads

1

Version

1.0.0

License

MIT

Last publish

Collaborators

  • martin-kolarik