Use fs.rm() instead of rimraf by kevinoid · Pull Request #296 · raszi/node-tmp (original) (raw)

@kevinoid

A regression occurred in 0.2.2 which can be reproduced using:

const assert = require('assert');
const tmp = require('tmp');
tmp.dir({ unsafeCleanup: true }, (err, path, cleanup) => {
  assert.ifError(err);
  cleanup(assert.ifError);
});

This works with 0.2.1. With 0.2.2 it fails with:

/path/to/tmp/node-tmp/lib/tmp.js:358
        return removeFunction(fileOrDirName, next || function() {});
               ^

TypeError: removeFunction is not a function
    at _cleanupCallback (/path/to/tmp/node-tmp/lib/tmp.js:358:16)
    at /path/to/tmp/node-tmp/repro.js:5:3
    at _dirCreated (/path/to/tmp/node-tmp/lib/tmp.js:207:7)
    at FSReqCallback.oncomplete (node:fs:192:23)

This occurs because 00bb5b2 upgraded the rimraf dependency from ^3.0.0 to ^5.0.5 without handling the change to a Promise-based API in 4.0.0 (isaacs/rimraf@a71e7f9) or the removal of the default export in 5.0.0 (isaacs/rimraf@c7a3fd4).

This commit fixes the issue by dropping the rimraf dependency in favor of fs.rm({recursive: true}).

It also updates the nodejs engine version to 14.14, when fs.rm() was added.

Fixes: 00bb5b2 ("Update rimraf and drop old Node compatibility") Fixes: raszi#295 Signed-off-by: Kevin Locke kevin@kevinlocke.name