Skip to content

IndigoUnited/node-gloth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gloth

NPM version Downloads Build Status Dependency status Dev Dependency status Greenkeeper badge

Multiple glob expansions with exclusions and hooks. Possible to use asynchronously and synchronously.

Installation

$ npm install gloth

Usage

var excludeSizeHigherThen = require('hooks/excludeSizeHigherThen');

gloth(['src/**/*', '!b.js', excludeSizeHigherThen(2097152)], function (err, matches) {
    // Do things with matches
})
var excludeSizeHigherThen = require('hooks/excludeSizeHigherThen');

var matches = gloth.sync(['src/**/*', '!b.js', excludeSizeHigherThen(2097152)]);
// Do things with matches

The example above would expand all files in the src folder, exclude any file named b.js and run the excludeSizeHigherThen hook. This hook would look something like:

var fs = require('fs');

module.exports = function (size) {
    return function (matches) {
        return matches.filter(function (match) {
            var stat = fs.statSync(match);

            return !stat.isFile() || stat.size <= size;
        });
    };
};

The hook above was written synchronously. The asynchronous version would be:

var fs    = require('fs');
var async = require('async');

module.exports = function (size) {
    return function (matches, next) {
        async.filter(matches, function (match, next) {
            fs.stat(match, function (err, stat) {
                if (err) return next(false);

                next(!stat.isFile() || stat.size <= size);
            });
        }, function (results) {
            next(null, results);
        });
    };
};

For more information on how hooks are done, please check the built-in hooks in the source code. The options available are the same as the glob ones.

IMPORTANT: sync hooks can be run in gloth async and sync, but async hooks can only be used with gloth async.

License

Released under the MIT License.

About

Multiple glob expansions with exclusions and hooks

Resources

License

Stars

Watchers

Forks

Packages

No packages published