From b51d95757059773b3ffada4110795904184c99f8 Mon Sep 17 00:00:00 2001 From: leeyeh Date: Sun, 15 May 2016 02:14:38 +0800 Subject: [PATCH] use Minimatch#match instead of makeRe --- src/createFilter.js | 14 +++++++------- test/test.js | 6 ++++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/createFilter.js b/src/createFilter.js index fcde2fc..efa76d6 100644 --- a/src/createFilter.js +++ b/src/createFilter.js @@ -1,21 +1,21 @@ import { resolve, sep } from 'path'; -import { makeRe } from 'minimatch'; +import { Minimatch } from 'minimatch'; import ensureArray from './utils/ensureArray'; export default function createFilter ( include, exclude ) { - include = ensureArray( include ).map( id => resolve( id ) ).map( makeRe ); - exclude = ensureArray( exclude ).map( id => resolve( id ) ).map( makeRe ); + include = ensureArray( include ).map( id => resolve( id ) ).map( id => new Minimatch(id) ); + exclude = ensureArray( exclude ).map( id => resolve( id ) ).map( id => new Minimatch(id) ); return function ( id ) { var included = !include.length; id = id.split(sep).join('/'); - include.forEach( pattern => { - if ( pattern.test( id ) ) included = true; + include.forEach( minimatch => { + if ( minimatch.match( id ) ) included = true; }); - exclude.forEach( pattern => { - if ( pattern.test( id ) ) included = false; + exclude.forEach( minimatch => { + if ( minimatch.match( id ) ) included = false; }); return included; diff --git a/test/test.js b/test/test.js index 78b1fe1..5bb06e9 100644 --- a/test/test.js +++ b/test/test.js @@ -28,6 +28,12 @@ describe( 'rollup-pluginutils', function () { assert.ok( filter( path.resolve( 'foo/bar' ) ) ); assert.ok( !filter( path.resolve( 'foo/baz' ) ) ); }); + + it( 'negation patterns', function () { + var filter = createFilter([ 'a/!(b)/c' ]); + assert.ok( filter( path.resolve( 'a/d/c' ) ) ); + assert.ok( !filter( path.resolve( 'a/b/c' ) ) ); + }); }); describe( 'addExtension', function () {