zubu

0.0.8 • Public • Published

Zubu

WORK IN PROGRESS!!!

Zubu is new glob library containing different glob utilities in the same toolbox. It's a mix of node-glob and minimatch, but build for performance and fleksibility. It's modular, so you can extend it yourself.

The files will be uploaded on Github soon!

Install

Install with npm

$ npm i zubu --save

Usage

The first thing you need to do is to import Zubu into your project:

 
// ES module
import { isMatch, glob, makeRegex } from 'zubu'
 
// or ...
// commonJS
var zubu = require('zubu');
var isMatch = zubu.isMatch;
var glob = zubu.glob;
var makeRegEx = zubu.makeRegex;

Zubu.glob()

Zubu.glob() is a speedy file globbing function for NodejS that allows you to match files using a Glob pattern.

Note This function is async for now.

 
glob('*.js', {}, function(err, files) {
    console.log(files);
});
 

Options

Options Description
cwd The current working directory in which to search. Defaults to process.cwd().
root The place where patterns starting with / will be mounted onto.
nocase Perform a case-insensitive match.
follow Follow symlinked directories when expanding **
dot Include .dot files in normal matches and globstar matches.

more to be added...

Zubu.filter()

... soon!!

Zubu.isMatch()

Match against the list of files, in the style of a regular string or glob pattern. Zubu.isMatch() return true if the filename matches the pattern, or false otherwise.

 
isMatch('a/.c.md', 'a/.c.md') //=> true
 
isMatch('.verb.md', '*.md'); //=> false
 
 
isMatch('.verb.md', '*.md', {dot: true}); //=> true
 

Zubu.makeRegex()

Zubu.makeRegex() makes a regular expression object from the pattern. It doesn't include the same features as similiar modules, because it's optimized mostly for internal usage. However. You can extend the Zubu.makeRegex() functionality by adding your own regular expression pattern.

Your pattern will be used by both Zubu.isMatch() and Zubu.glob().

For every regular expression you are adding, it has to be wrapped inside and object literal and must contain this properties:

  • regex
  • replace

The regex property is the regex itself, while the replace property has to be a function with two arguments:

  • token
  • pattern

token is the string, and pattern is the regExp. Both returned from Zubu.makeRegex().

 
// add a single regEx pattern
Zubu.addRegex( {
    regex: /^\*\*\//,
    replace function(token, pattern) {
        //.. do some magic stuff, and return the result
    }
});
 
// add multiple regEx patterns
Zubu.addRegex([
    {
        regex: /^\*\*\//,
        replace function(token, pattern) {
            //.. do some magic stuff, and return the result
        }
    },
    {
        regex: /^\*\*\//,
        replace function(token, pattern) {
            //.. do some magic stuff, and return the result
        }
    });

Options

Options Description
negate Create a regex that will match everything except the given pattern.
strict The regular expression will only return true for exact mateches
flags Define the flags you want to use on the generated regex.
nocase Adds the i flag, to enable case-insensitive matching.

more to be added

Powered by: ZubuZon

Readme

Keywords

Package Sidebar

Install

npm i zubu

Weekly Downloads

0

Version

0.0.8

License

MIT

Last publish

Collaborators

  • zubuzon