diff --git a/src/preProcessPattern.js b/src/preProcessPattern.js index 23dd3ec9..5ca4e4ac 100644 --- a/src/preProcessPattern.js +++ b/src/preProcessPattern.js @@ -37,6 +37,14 @@ export default function preProcessPattern(globalRef, pattern) { debug(`determined '${pattern.to}' is a '${pattern.toType}'`); + // If we know it's a glob, then bail early + if (_.isObject(pattern.from) && pattern.from.glob) { + pattern.fromType = 'glob'; + pattern.fromArgs = _.omit(pattern.from, ['glob']); + pattern.absoluteFrom = path.resolve(pattern.context, pattern.from.glob); + return Promise.resolve(pattern); + } + if (path.isAbsolute(pattern.from)) { pattern.absoluteFrom = pattern.from; } else { diff --git a/tests/index.js b/tests/index.js index 0976d6c1..1467e4d2 100644 --- a/tests/index.js +++ b/tests/index.js @@ -209,6 +209,21 @@ describe('apply function', () => { .catch(done); }); + it('can use a glob object to move a file to the root directory', (done) => { + runEmit({ + expectedAssetKeys: [ + 'file.txt' + ], + patterns: [{ + from: { + glob: '*.txt' + } + }] + }) + .then(done) + .catch(done); + }); + it('can use a glob to move multiple files to the root directory', (done) => { runEmit({ expectedAssetKeys: [