You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.0 KiB
102 lines
3.0 KiB
<p align="center">
|
|
<a href="http://gulpjs.com">
|
|
<img height="257" width="114" src="https://raw.githubusercontent.com/gulpjs/artwork/master/gulp-2x.png">
|
|
</a>
|
|
</p>
|
|
|
|
# empty-dir
|
|
|
|
[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url]
|
|
|
|
Check if a directory is empty.
|
|
|
|
## Usage
|
|
|
|
```js
|
|
var emptyDir = require('empty-dir');
|
|
|
|
// Using an error-back
|
|
emptyDir('./', function(err, result) {
|
|
if (err) {
|
|
console.error(err);
|
|
} else {
|
|
console.log('Directory is empty:', result);
|
|
}
|
|
});
|
|
|
|
// Using a Promise
|
|
emptyDir('./').then(function(result) {
|
|
console.log('Directory is empty:', result);
|
|
});
|
|
|
|
var result = emptyDir.sync('./test/empty');
|
|
console.log('Directory is empty:', result);
|
|
```
|
|
|
|
## API
|
|
|
|
### `emptyDir(paths, [filterFunction], [callback])`
|
|
|
|
Takes a path string or array of path strings and returns a Promise. Checks if the given paths are empty and resolves with a boolean indicating if the paths are empty directories. Optionally takes a filter function to filter out files that cause false positives. Also, can take a node-style callback function instead of returning a Promise.
|
|
|
|
### `emptyDir.sync(paths, [filterFunction])`
|
|
|
|
Same as the above API but operates and returns synchronously. An error will be thrown.
|
|
|
|
#### Filter function
|
|
|
|
Both async and sync take a filter function as the second argument, to ignore files like `.DS_Store` on mac or `Thumbs.db` on windows from causing false-negatives.
|
|
|
|
```js
|
|
var emptyDir = require('empty-dir');
|
|
|
|
function filter(filepath) {
|
|
return !/(Thumbs\.db|\.DS_Store)$/i.test(filepath);
|
|
}
|
|
|
|
emptyDir('./', filter, function(err, isEmpty) {
|
|
if (err) {
|
|
console.error(err);
|
|
} else {
|
|
console.log('Directory is empty:', isEmpty);
|
|
}
|
|
});
|
|
|
|
var isEmpty = emptyDir.sync('./test/empty', filter);
|
|
console.log('Directory is empty:', isEmpty);
|
|
```
|
|
|
|
#### Promises
|
|
|
|
Global promises are required for this module. If you are using a platform that doesn't have promise support, you'll need to polyfill Promise on the global.
|
|
|
|
```js
|
|
global.Promise = require('insert-your-promise-polyfill-here');
|
|
|
|
var emptyDir = require('empty-dir');
|
|
|
|
emptyDir('./').then(function(result) {
|
|
console.log('Directory is empty:', result);
|
|
});
|
|
```
|
|
|
|
## License
|
|
|
|
MIT
|
|
|
|
[downloads-image]: http://img.shields.io/npm/dm/empty-dir.svg
|
|
[npm-url]: https://www.npmjs.com/package/empty-dir
|
|
[npm-image]: http://img.shields.io/npm/v/empty-dir.svg
|
|
|
|
[travis-url]: https://travis-ci.org/gulpjs/empty-dir
|
|
[travis-image]: http://img.shields.io/travis/gulpjs/empty-dir.svg?label=travis-ci
|
|
|
|
[appveyor-url]: https://ci.appveyor.com/project/gulpjs/empty-dir
|
|
[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/empty-dir.svg?label=appveyor
|
|
|
|
[coveralls-url]: https://coveralls.io/r/gulpjs/empty-dir
|
|
[coveralls-image]: http://img.shields.io/coveralls/gulpjs/empty-dir/master.svg
|
|
|
|
[gitter-url]: https://gitter.im/gulpjs/gulp
|
|
[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg
|