mqtt stuff added
This commit is contained in:
94
node_modules/glob-stream/index.js
generated
vendored
Normal file
94
node_modules/glob-stream/index.js
generated
vendored
Normal file
@ -0,0 +1,94 @@
|
||||
'use strict';
|
||||
|
||||
var Combine = require('ordered-read-streams');
|
||||
var unique = require('unique-stream');
|
||||
var pumpify = require('pumpify');
|
||||
var isNegatedGlob = require('is-negated-glob');
|
||||
var extend = require('extend');
|
||||
|
||||
var GlobStream = require('./readable');
|
||||
|
||||
function globStream(globs, opt) {
|
||||
if (!opt) {
|
||||
opt = {};
|
||||
}
|
||||
|
||||
var ourOpt = extend({}, opt);
|
||||
var ignore = ourOpt.ignore;
|
||||
|
||||
ourOpt.cwd = typeof ourOpt.cwd === 'string' ? ourOpt.cwd : process.cwd();
|
||||
ourOpt.dot = typeof ourOpt.dot === 'boolean' ? ourOpt.dot : false;
|
||||
ourOpt.silent = typeof ourOpt.silent === 'boolean' ? ourOpt.silent : true;
|
||||
ourOpt.cwdbase = typeof ourOpt.cwdbase === 'boolean' ? ourOpt.cwdbase : false;
|
||||
ourOpt.uniqueBy = typeof ourOpt.uniqueBy === 'string' ||
|
||||
typeof ourOpt.uniqueBy === 'function' ? ourOpt.uniqueBy : 'path';
|
||||
|
||||
if (ourOpt.cwdbase) {
|
||||
ourOpt.base = ourOpt.cwd;
|
||||
}
|
||||
// Normalize string `ignore` to array
|
||||
if (typeof ignore === 'string') {
|
||||
ignore = [ignore];
|
||||
}
|
||||
// Ensure `ignore` is an array
|
||||
if (!Array.isArray(ignore)) {
|
||||
ignore = [];
|
||||
}
|
||||
|
||||
// Only one glob no need to aggregate
|
||||
if (!Array.isArray(globs)) {
|
||||
globs = [globs];
|
||||
}
|
||||
|
||||
var positives = [];
|
||||
var negatives = [];
|
||||
|
||||
globs.forEach(sortGlobs);
|
||||
|
||||
function sortGlobs(globString, index) {
|
||||
if (typeof globString !== 'string') {
|
||||
throw new Error('Invalid glob at index ' + index);
|
||||
}
|
||||
|
||||
var glob = isNegatedGlob(globString);
|
||||
var globArray = glob.negated ? negatives : positives;
|
||||
|
||||
globArray.push({
|
||||
index: index,
|
||||
glob: glob.pattern,
|
||||
});
|
||||
}
|
||||
|
||||
if (positives.length === 0) {
|
||||
throw new Error('Missing positive glob');
|
||||
}
|
||||
|
||||
// Create all individual streams
|
||||
var streams = positives.map(streamFromPositive);
|
||||
|
||||
// Then just pipe them to a single unique stream and return it
|
||||
var aggregate = new Combine(streams);
|
||||
var uniqueStream = unique(ourOpt.uniqueBy);
|
||||
|
||||
return pumpify.obj(aggregate, uniqueStream);
|
||||
|
||||
function streamFromPositive(positive) {
|
||||
var negativeGlobs = negatives
|
||||
.filter(indexGreaterThan(positive.index))
|
||||
.map(toGlob)
|
||||
.concat(ignore);
|
||||
return new GlobStream(positive.glob, negativeGlobs, ourOpt);
|
||||
}
|
||||
}
|
||||
|
||||
function indexGreaterThan(index) {
|
||||
return function(obj) {
|
||||
return obj.index > index;
|
||||
};
|
||||
}
|
||||
|
||||
function toGlob(obj) {
|
||||
return obj.glob;
|
||||
}
|
||||
|
||||
module.exports = globStream;
|
Reference in New Issue
Block a user