Skip to content

Consider replacing del with its dependency rimraf #2952

Closed
@live627

Description

@live627

The current version of rimraf supports globs, so one could just add an asterisk to the end of the folder, like so:

diff --git a/lib/cli.js b/lib/cli.js
index 3f9974732..d50f08624 100644
--- a/lib/cli.js
+++ b/lib/cli.js
@@ -5,7 +5,7 @@ import process from 'node:process';
 
 import arrify from 'arrify';
 import ciParallelVars from 'ci-parallel-vars';
-import del from 'del';
+import rimraf from 'rimraf';
 import figures from 'figures';
 import yargs from 'yargs';
 import {hideBin} from 'yargs/helpers'; // eslint-disable-line node/file-extension-in-import
@@ -253,7 +253,7 @@ export default async function loadCli() { // eslint-disable-line complexity
 		const cacheDir = path.join(projectDir, 'node_modules', '.cache', 'ava');
 
 		try {
-			const deletedFilePaths = await del('*', {cwd: cacheDir});
+			const deletedFilePaths = rimraf(path.join(cacheDir, '*'));
 
 			if (deletedFilePaths.length === 0) {
 				console.log(`\n${chalk.green(figures.tick)} No cache files to remove`);

--- a/test-tap/api.js
+++ b/test-tap/api.js
@@ -3,7 +3,7 @@ import path from 'node:path';
 import {fileURLToPath} from 'node:url';
 
 import ciInfo from 'ci-info';
-import del from 'del';
+import rimraf from 'rimraf';
 import {test} from 'tap';
 
 import Api from '../lib/api.js';
@@ -400,7 +400,7 @@ for (const opt of options) {
 	});
 
 	test(`caching can be disabled - workerThreads: ${opt.workerThreads}`, async t => {
-		del.sync(path.join(__dirname, 'fixture/caching/node_modules'));
+		rimraf.sync(path.join(__dirname, 'fixture/caching/node_modules'));
 
 		const api = await apiCreator({
 			...opt,

Could this be simplified?

[email protected] (44 deps, 809.26kb, 342 files)
├─┬ [email protected] (23 deps, 576.5kb, 238 files)
│ ├── [email protected] (3.09kb, 5 files)
│ ├─┬ [email protected] (1 dep, 10.57kb, 9 files)
│ │ ╰── [email protected] (5.28kb, 5 files)
│ ├─┬ [email protected] (17 deps, 490.43kb, 206 files)
│ │ ├── @nodelib/[email protected] (11.57kb, 15 files)
│ │ ├─┬ @nodelib/[email protected] (6 deps, 120.09kb, 96 files)
│ │ │ ├─┬ @nodelib/[email protected] (3 deps, 47.78kb, 47 files)
│ │ │ │ ├── @nodelib/[email protected] (🔗, 11.57kb, 15 files)
│ │ │ │ ╰─┬ [email protected] (1 dep, 14.58kb, 9 files)
│ │ │ │   ╰── [email protected] (8.17kb, 5 files)
│ │ │ ╰─┬ [email protected] (1 dep, 46.54kb, 24 files)
│ │ │   ╰── [email protected] (9.22kb, 10 files)
│ │ ├─┬ [email protected] (2 deps, 31.21kb, 13 files)
│ │ │ ╰── [email protected] (🔗, 1 dep, 19.36kb, 8 files)
│ │ ├── [email protected] (🔗, 8.69kb, 4 files)
│ │ ╰─┬ [email protected] (5 deps, 243.77kb, 38 files)
│ │   ├─┬ [email protected] (3 deps, 95.84kb, 23 files)
│ │   │ ╰─┬ [email protected] (2 deps, 47.76kb, 12 files)
│ │   │   ╰─┬ [email protected] (1 dep, 31.79kb, 8 files)
│ │   │     ╰── [email protected] (9.39kb, 4 files)
│ │   ╰── [email protected] (87.84kb, 10 files)
│ ├── [email protected] (47.72kb, 6 files)
│ ├── [email protected] (8.69kb, 4 files)
│ ╰── [email protected] (🔗, 3.42kb, 5 files)
├── [email protected] (30.86kb, 7 files)
├─┬ [email protected] (1 dep, 19.36kb, 8 files)
│ ╰── [email protected] (6.07kb, 4 files)
├── [email protected] (2.7kb, 5 files)
├── [email protected] (4.02kb, 5 files)
├─┬ [email protected] (3 deps, 24.69kb, 20 files)
│ ╰─┬ [email protected] (2 deps, 16.21kb, 15 files)
│   ├── [email protected] (5.38kb, 5 files)
│   ╰── [email protected] (4.29kb, 5 files)
├─┬ [email protected] (12 deps, 158.96kb, 62 files)
│ ╰─┬ [email protected] (11 deps, 142.04kb, 56 files)
│   ├── [email protected] (13.12kb, 5 files)
│   ├─┬ [email protected] (3 deps, 13.41kb, 16 files)
│   │ ├── [email protected] (🔗, 1 dep, 6.84kb, 8 files)
│   │ ╰── [email protected] (2.89kb, 4 files)
│   ├── [email protected] (3.87kb, 5 files)
│   ├─┬ [email protected] (3 deps, 54.66kb, 20 files)
│   │ ╰─┬ [email protected] (2 deps, 22.32kb, 16 files)
│   │   ├── [email protected] (6.78kb, 5 files)
│   │   ╰── [email protected] (4.75kb, 7 files)
│   ├─┬ [email protected] (1 dep, 6.84kb, 8 files)
│   │ ╰── [email protected] (2.89kb, 4 files)
│   ╰── [email protected] (3.53kb, 4 files)
╰── [email protected] (3.42kb, 5 files)

I already have a commit lined up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions