# check-files-exist
This small promise based node module checks a given string or array of strings to contain valid file selectors. The selectors could either be relative or absolute paths or even globs.

## Syntax

```js
var checkFilesExist = require('check-files-exist');

checkFilesExist(['files/a.js', 'files/*_c.js'], __dirname).then(function () {
  console.log('All files exist.');
}, function (err) {
  console.log(err);
})
```

## Examples
Let's assume, we've got the following directory structure:

```
+ files
  -  a.js
  - b_c.js
  - d.js
```

Each of the following calls would resolve the promise:

```js
checkFilesExist('files/*')
checkFilesExist('files/**/*')
checkFilesExist('files/a.js')
checkFilesExist(['files/a.js', 'files/d.js'])
checkFilesExist(['files/a.js', ['files/*_c.js']])
checkFilesExist(['files/a.js', ['files/*_c.js', 'files/b_*']])
checkFilesExist([['files/a.js'], ['files/*_c.js', 'files/b_*']])
```

The following would reject it:

```js
checkFilesExist('')
checkFilesExist('files/_*')
checkFilesExist([])
checkFilesExist(['files/', ''])
```

## Use in a build chain
Using this module in f.e. gulp is really simsple:

```js

gulp.task('checkFilesExist', function() {
  return checkFilesExist([
      config.scripts.files,
  ]);
});
```

## Working dir
[node-glob](https://github.com/isaacs/node-glob) provides passing a `cwd` working directory string. You could easily pass a string as a second parameter to have it passed to glob:

```js
checkFilesExist('files/a.js', __dirname).then(...);
```
