JSPM

node-remove

1.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q18985F

Delete files and directories

Package Exports

  • node-remove

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-remove) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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'));
})();
  • make-dir - Make a directory and its parents if needed
  • globby - User-friendly glob matching