node-remove
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

node-remove

npm version  https://img.shields.io/npm/dm/node-remove.svg

Delete files and directories using globs

Similar to rimraf, but with a Promise API and support for multiple files and globbing. It also protects you against deleting the current working directory and above.

Install

 npm install node-remove
 // Or 
 yarn add node-remove

Usage

const nodeRemove = require('node-remove');

(async () => {
	const deletedFilePaths = await nodeRemove['temp/*.js', '!temp/unicorn.js']);
	const deletedDirectoryPaths = await nodeRemove['temp', 'public']);

	console.log('Deleted files:\n', deletedFilePaths.join('\n'));
	console.log('\n\n');
	console.log('Deleted directories:\n', deletedDirectoryPaths.join('\n'));
})();

Beware

The glob pattern ** matches all children and the parent.

So this won't work:

nodeRemove.sync(['public/assets/**', '!public/assets/goat.png']);

You have to explicitly ignore the parent directories too:

nodeRemove.sync(['public/assets/**', '!public/assets', '!public/assets/goat.png']);

To delete all subdirectories inside public/, you can do:

nodeRemove.sync(['public/*/']);

Suggestions on how to improve this welcome!

API

Note that glob patterns can only contain forward-slashes, not backward-slashes. Windows file paths can use backward-slashes as long as the path does not contain any glob-like characters, otherwise use path.posix.join() instead of path.join().

nodeRemove patterns, options?)

Returns Promise<string[]> with the deleted paths.

nodeRemove.sync(patterns, options?)

Returns string[] with the deleted paths.

patterns

Type: string | string[]

See the supported glob patterns.

options

Type: object

You can specify any of the globby options in addition to the below options. In contrast to the globby defaults, expandDirectories, onlyFiles, and followSymbolicLinks are false by default.

force

Type: boolean
Default: false

Allow deleting the current working directory and outside.

dryRun

Type: boolean
Default: false

See what would be deleted.

const nodeRemove = require('node-remove');

(async () => {
	const deletedPaths = await nodeRemove['temp/*.js'], {dryRun: true});

	console.log('Files and directories that would be deleted:\n', deletedPaths.join('\n'));
})();

Related

  • make-dir - Make a directory and its parents if needed
  • globby - User-friendly glob matching

Dependencies (8)

Dev Dependencies (6)

Package Sidebar

Install

npm i node-remove

Weekly Downloads

2

Version

1.0.2

License

none

Unpacked Size

9 kB

Total Files

4

Last publish

Collaborators

  • miladezzat