npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

zubu

v0.0.8

Published

a little file globber for nodeJS

Downloads

7

Readme

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