safe-wipe
v0.2.5
Published
> Safely wipe a folder.
Downloads
39,236
Readme
safe-wipe
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
orThumbs.db
as configured withconfig.ignore
), the folder will be removed without asking anything. - If
config.force
is set totrue
, 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:
| Name | Description | Default |
|-----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| stdin
, stdout
, stderr
| Streams to use for I/O. | process.*
streams |
| ignore
| An array of files to ignore when checking if a directory is empty. | .DS_Store
and Thumbs.db
|
| parent
| A (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. | |
| interactive
| Whether the session is interactive. | true
|
| force
| Whether to force the wipe if the folder is not empty. | false
|
| silent
| The error messages are not printed if this is set to true
. | false
|
| messages
| An object of messages for user prompt and error display. | |
The messages are:
| Name | Description |
|-------------|-------------------------------------------------------------------------------------|
| contained
| Error message when the folder to wipe is contained in the configured parent folder. |
| confirm
| Text to prompt the user to confirm the (not empty) directory wipe. |
| abort
| Error 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:
| Code | Description |
|-------------|--------------------------------------------------------------------------------------------------------|
| CONTAINED
| Refused to remove the directory since it's containing the supposed parent. |
| ABORT
| The 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,
});