Nominal Pizza Masticator

    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

    Install

    npm i node-remove

    DownloadsWeekly Downloads

    4

    Version

    1.0.2

    License

    none

    Unpacked Size

    9 kB

    Total Files

    4

    Last publish

    Collaborators

    • miladezzat