diff --git a/index.js b/index.js index 029a19e..881614b 100644 --- a/index.js +++ b/index.js @@ -19,8 +19,17 @@ const assertPatternsInput = patterns => { }; const checkCwdOption = options => { - if (options && options.cwd && !fs.statSync(options.cwd).isDirectory()) { - throw new Error('The `cwd` option must be a path to a directory'); + if (options && options.cwd) { + let stat; + try { + stat = fs.statSync(options.cwd); + } catch (_) { + return; + } + + if (!stat.isDirectory()) { + throw new Error('The `cwd` option must be a path to a directory'); + } } }; diff --git a/test.js b/test.js index ffe776b..165d46a 100644 --- a/test.js +++ b/test.js @@ -362,3 +362,13 @@ test('throws when specifying a file as cwd - stream', t => { globby.stream('*', {cwd: isFile}); }, 'The `cwd` option must be a path to a directory'); }); + +test('don\'t throw when specifying a non-existing cwd directory - async', async t => { + const actual = await globby('.', {cwd: '/unknown'}); + t.is(actual.length, 0); +}); + +test('don\'t throw when specifying a non-existing cwd directory - sync', t => { + const actual = globby.sync('.', {cwd: '/unknown'}); + t.is(actual.length, 0); +});