check-files-exist

Checks if the given array of file selectors or single selector resolves to a file.

Usage no npm install needed!

<script type="module">
  import checkFilesExist from 'https://cdn.skypack.dev/check-files-exist';
</script>

README

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

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:

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:

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

Use in a build chain

Using this module in f.e. gulp is really simsple:


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

Working dir

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:

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