222
schangxiang@126.com
2025-06-13 6a8393408d8cefcea02b7a598967de8dc1e565c2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
'use strict';
var minimatch = require('minimatch');
var arrayUnion = require('array-union');
var arrayDiffer = require('array-differ');
var arrify = require('arrify');
 
module.exports = function (list, patterns, options) {
    list = arrify(list);
    patterns = arrify(patterns);
 
    if (list.length === 0 || patterns.length === 0) {
        return [];
    }
 
    options = options || {};
 
    return patterns.reduce(function (ret, pattern) {
        var process = arrayUnion;
 
        if (pattern[0] === '!') {
            pattern = pattern.slice(1);
            process = arrayDiffer;
        }
 
        return process(ret, minimatch.match(list, pattern, options));
    }, []);
};