Socket
Socket
Sign inDemoInstall

delete-empty

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

delete-empty - npm Package Compare versions

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._
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc