From 89ceb2a7acfabb72335fd7fa4f5faf867baeb05e Mon Sep 17 00:00:00 2001 From: XiaoPi <530257315@qq.com> Date: Sun, 13 Aug 2023 20:18:42 +0800 Subject: [PATCH] fix(pluginutils): add current working dirctory when pattern starts with one * (#1547) --- packages/pluginutils/src/createFilter.ts | 2 +- packages/pluginutils/test/createFilter.ts | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/pluginutils/src/createFilter.ts b/packages/pluginutils/src/createFilter.ts index 2c76e16bf..e8d8899fe 100755 --- a/packages/pluginutils/src/createFilter.ts +++ b/packages/pluginutils/src/createFilter.ts @@ -8,7 +8,7 @@ import ensureArray from './utils/ensureArray'; import normalizePath from './normalizePath'; function getMatcherString(id: string, resolutionBase: string | false | null | undefined) { - if (resolutionBase === false || isAbsolute(id) || id.startsWith('*')) { + if (resolutionBase === false || isAbsolute(id) || id.startsWith('**')) { return normalizePath(id); } diff --git a/packages/pluginutils/test/createFilter.ts b/packages/pluginutils/test/createFilter.ts index 49062a5ce..234bbc205 100755 --- a/packages/pluginutils/test/createFilter.ts +++ b/packages/pluginutils/test/createFilter.ts @@ -134,6 +134,20 @@ test('does not add current working directory when pattern is an absolute path', t.falsy(filter(resolve('..', 'c'))); }); +test('does not add current working directory when pattern starts with character **', (t) => { + const filter = createFilter(['**/*']); + + t.truthy(filter(resolve('a'))); + t.truthy(filter(resolve('..', '..', 'a'))); +}); + +test('add current working directory when pattern starts with one *', (t) => { + const filter = createFilter([`*`]); + + t.truthy(filter(resolve('a'))); + t.falsy(filter(resolve('..', '..', 'a'))); +}); + test('normalizes path when pattern is an absolute path', (t) => { const filterPosix = createFilter([`${resolve('.')}/*`]); const filterWin = createFilter([`${resolve('.')}\\*`]); @@ -161,9 +175,3 @@ test('normalizes path when pattern has resolution base', (t) => { t.truthy(filterPosix(resolve('test/a'))); t.truthy(filterWin(resolve('test/a'))); }); - -test('does not add current working directory when pattern starts with a glob', (t) => { - const filter = createFilter(['**/*']); - t.truthy(filter(resolve('a'))); - t.truthy(filter(resolve('..', '..', 'a'))); -});