Sha256: 2b67c36060b8ec457328a31286b439d730af4fdb228e1e845d4c73acdbc442eb

Contents?: true

Size: 1.05 KB

Versions: 2

Compression:

Stored size: 1.05 KB

Contents

var glob = require("glob");
var async = require("async");
var _ = require("lodash");

function array(arr) {
    return Array.isArray(arr) ? arr : [arr];
}

function resolveGlobs(patterns, options) {
    options = options || {};
    return array(patterns).reduce(function (fns, pattern) {
        fns.push(function (done) {
            glob(pattern, options, function (err, matches) {
                if (!err && options.strict && matches.length === 0) {
                    done(new Error("'" + pattern + "' matched no files"));
                } else {
                    done(err, matches);
                }
            });
        });
        return fns;
    }, []);
}

function processSingle(callback) {
    return function (err, matches) {
        callback(err, _.uniq(_.flatten(_.toArray(matches))));
    };
}

module.exports = {
    glob: function (patterns, options, cb) {
        if (typeof options === "function") {
            cb = options;
            options = null;
        }
        async.parallel(resolveGlobs(patterns, options), processSingle(cb));
    }
};

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pleeease-0.0.3 node_modules/pleeease/node_modules/multi-glob/lib/multi-glob.js
pleeease-0.0.2 node_modules/pleeease/node_modules/multi-glob/lib/multi-glob.js