delete-empty
Advanced tools
Comparing version 1.0.0 to 1.0.1
50
index.js
@@ -13,2 +13,3 @@ /*! | ||
var relative = require('relative'); | ||
var extend = require('extend-shallow'); | ||
var series = require('async-each-series'); | ||
@@ -18,9 +19,9 @@ var rimraf = require('rimraf'); | ||
function deleteEmpty(cwd, options, done) { | ||
function deleteEmpty(cwd, options, callback) { | ||
if (typeof options === 'function') { | ||
done = options; | ||
callback = options; | ||
options = {}; | ||
} | ||
if (typeof done !== 'function') { | ||
if (typeof callback !== 'function') { | ||
throw new TypeError('expected callback to be a function'); | ||
@@ -30,3 +31,3 @@ } | ||
var dirname = path.resolve(cwd); | ||
var opts = Object.assign({filter: keep}, options); | ||
var opts = extend({}, options); | ||
var acc = []; | ||
@@ -62,3 +63,3 @@ | ||
var rel = relative(dir); | ||
if (opts.silent !== true) { | ||
if (opts.verbose !== false) { | ||
ok('deleted:', rel); | ||
@@ -80,3 +81,3 @@ } | ||
remove(dirname, function(err) { | ||
done(err, acc); | ||
callback(err, acc); | ||
}); | ||
@@ -87,3 +88,3 @@ } | ||
var dirname = path.resolve(cwd); | ||
var opts = Object.assign({filter: keep}, options); | ||
var opts = extend({}, options); | ||
var acc = []; | ||
@@ -93,4 +94,7 @@ | ||
var dir = path.resolve(filepath); | ||
if (dir.indexOf(dirname) !== 0) return; | ||
if (dir.indexOf(dirname) !== 0) { | ||
return; | ||
} | ||
if (isDirectory(dir)) { | ||
@@ -103,3 +107,3 @@ var files = fs.readdirSync(dir); | ||
var rel = relative(dir); | ||
if (opts.silent !== true) { | ||
if (opts.verbose !== false) { | ||
ok('deleted:', rel); | ||
@@ -136,17 +140,25 @@ } | ||
function isEmpty(files, fn) { | ||
try { | ||
return files.filter(fn).length === 0; | ||
} catch (err) { | ||
if (err & err.code === 'ENOENT') { | ||
/** | ||
* Returns true if the file is a garbage file that can be deleted | ||
*/ | ||
function isGarbageFile(filename) { | ||
return /(?:Thumbs\.db|\.DS_Store)$/i.test(filename); | ||
} | ||
/** | ||
* Return true if the given `files` array has zero length or only | ||
* includes unwanted files. | ||
*/ | ||
function isEmpty(files, filterFn) { | ||
var filter = filterFn || isGarbageFile; | ||
for (var i = 0; i < files.length; ++i) { | ||
if (!filter(files[i])) { | ||
return false; | ||
} | ||
throw err; | ||
} | ||
return true; | ||
} | ||
function keep(filename) { | ||
return !/(?:Thumbs\.db|\.DS_Store)$/i.test(filename); | ||
} | ||
/** | ||
@@ -153,0 +165,0 @@ * Expose deleteEmpty |
{ | ||
"name": "delete-empty", | ||
"description": "Recursively delete all empty folders in a directory and child directories.", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"homepage": "https://github.com/jonschlinkert/delete-empty", | ||
@@ -33,8 +33,9 @@ "author": "Jon Schlinkert (https://github.com/jonschlinkert)", | ||
"async-each-series": "^1.1.0", | ||
"extend-shallow": "^2.0.1", | ||
"log-ok": "^0.1.1", | ||
"relative": "^3.0.2", | ||
"rimraf": "^2.6.0" | ||
"rimraf": "^2.6.1" | ||
}, | ||
"devDependencies": { | ||
"gulp-format-md": "^0.1.11", | ||
"gulp-format-md": "^0.1.12", | ||
"matched": "^0.4.4", | ||
@@ -41,0 +42,0 @@ "mocha": "^3.2.0" |
@@ -76,3 +76,3 @@ # delete-empty [![NPM version](https://img.shields.io/npm/v/delete-empty.svg?style=flat)](https://www.npmjs.com/package/delete-empty) [![NPM monthly downloads](https://img.shields.io/npm/dm/delete-empty.svg?style=flat)](https://npmjs.org/package/delete-empty) [![NPM total downloads](https://img.shields.io/npm/dt/delete-empty.svg?style=flat)](https://npmjs.org/package/delete-empty) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/delete-empty.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/delete-empty) | ||
| --- | --- | | ||
| 17 | [jonschlinkert](https://github.com/jonschlinkert) | | ||
| 22 | [jonschlinkert](https://github.com/jonschlinkert) | | ||
| 1 | [svenschoenung](https://github.com/svenschoenung) | | ||
@@ -113,2 +113,2 @@ | 1 | [vpalmisano](https://github.com/vpalmisano) | | ||
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.4.2, on February 24, 2017._ | ||
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.5.0, on April 07, 2017._ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
10292
140
0
5
+ Addedextend-shallow@^2.0.1
+ Addedextend-shallow@2.0.1(transitive)
+ Addedis-extendable@0.1.1(transitive)
Updatedrimraf@^2.6.1