0.2.5 • Published 5 years ago

safe-wipe v0.2.5

Weekly downloads
18,829
License
Unlicense
Repository
github
Last release
5 years ago

safe-wipe npm version

Safely wipe a folder.

Overview

This is the perfect library for when you want to wipe a folder with user's confirmation.

  • If the folder is empty (or contains only useless files like .DS_Store or Thumbs.db as configured with config.ignore), the folder will be removed without asking anything.
  • If config.force is set to true, wipe anyway.
  • If the session is not interactive, raise an exception.
  • Prompt the user for confirmation, and raise an exception if the answer is negative.

You can configure the following variables:

NameDescriptionDefault
stdin, stdout, stderrStreams to use for I/O.process.* streams
ignoreAn array of files to ignore when checking if a directory is empty..DS_Store and Thumbs.db
parentA (supposed) parent directory of the directory to wipe. If the parent is contained in the directory to wipe, the process will be aborted in all cases.
interactiveWhether the session is interactive.true
forceWhether to force the wipe if the folder is not empty.false
silentThe error messages are not printed if this is set to true.false
messagesAn object of messages for user prompt and error display.

The messages are:

NameDescription
containedError message when the folder to wipe is contained in the configured parent folder.
confirmText to prompt the user to confirm the (not empty) directory wipe.
abortError message when the user refuses to wipe the folder.

The function is asynchronous and return a promise. Nothing is passed to the success function, but you'll get an Error instance in the error function. It can have the following code property:

CodeDescription
CONTAINEDRefused to remove the directory since it's containing the supposed parent.
ABORTThe user aborted the operation (or we're not in an interactive session and config.force is false).

Examples

Simple usage

var safeWipe = require('safe-wipe');

safeWipe('directory', {
  parent: __dirname,
  messages: {
    abort: 'Nope.',
  },
}).then(function () {
  console.log('Successfully removed!');
}, function (e) {
  console.error(e.message, e.code);
});

Bind a config object

var mySafeWipe = safeWipe({
  interactive: false,
});

mySafeWipe('some-directory').then(function () {
  // ...
});

mySafeWipe('another-directory', {
  force: true,
});
0.2.5

5 years ago

0.2.4

9 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago