Skip to content

Commit 0f00d4e

Browse files
authored
fix: replace non-CLI rimraf usage (#13151)
1 parent 6a90a2c commit 0f00d4e

File tree

11 files changed

+40
-45
lines changed

11 files changed

+40
-45
lines changed

e2e/Utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import * as path from 'path';
99
import dedent = require('dedent');
1010
import {ExecaReturnValue, sync as spawnSync} from 'execa';
1111
import * as fs from 'graceful-fs';
12-
import rimraf = require('rimraf');
1312
import type {PackageJson} from 'type-fest';
1413
import which = require('which');
1514
import type {Config} from '@jest/types';
@@ -66,7 +65,7 @@ export const linkJestPackage = (packageName: string, cwd: string) => {
6665
const packagePath = path.resolve(packagesDir, packageName);
6766
const destination = path.resolve(cwd, 'node_modules/', packageName);
6867
fs.mkdirSync(destination, {recursive: true});
69-
rimraf.sync(destination);
68+
fs.rmSync(destination, {force: true, recursive: true});
7069
fs.symlinkSync(packagePath, destination, 'junction');
7170
};
7271

@@ -80,7 +79,8 @@ export const makeTemplate =
8079
return values[number - 1];
8180
});
8281

83-
export const cleanup = (directory: string) => rimraf.sync(directory);
82+
export const cleanup = (directory: string) =>
83+
fs.rmSync(directory, {force: true, recursive: true});
8484

8585
/**
8686
* Creates a nested directory with files and their contents

e2e/__tests__/snapshotMockFs.test.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,15 @@
66
*/
77

88
import * as path from 'path';
9-
import rimraf = require('rimraf');
10-
import {extractSummary} from '../Utils';
9+
import {cleanup, extractSummary} from '../Utils';
1110
import {json as runJestJson} from '../runJest';
1211

1312
const DIR = path.resolve(__dirname, '../snapshot-mock-fs');
1413
const snapshotDir = path.resolve(DIR, '__tests__/__snapshots__');
1514
const snapshotFile = path.resolve(snapshotDir, 'snapshot.test.js.snap');
1615

17-
beforeEach(() => rimraf.sync(snapshotDir));
18-
afterAll(() => rimraf.sync(snapshotDir));
16+
beforeEach(() => cleanup(snapshotDir));
17+
afterAll(() => cleanup(snapshotDir));
1918

2019
test('store snapshot even if fs is mocked', () => {
2120
const {json, exitCode, stderr} = runJestJson(DIR, ['--ci=false']);

packages/jest-core/package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
"jest-watcher": "workspace:^",
3939
"micromatch": "^4.0.4",
4040
"pretty-format": "workspace:^",
41-
"rimraf": "^3.0.0",
4241
"slash": "^3.0.0",
4342
"strip-ansi": "^6.0.0"
4443
},
@@ -47,8 +46,7 @@
4746
"@jest/test-utils": "workspace:^",
4847
"@types/exit": "^0.1.30",
4948
"@types/graceful-fs": "^4.1.3",
50-
"@types/micromatch": "^4.0.1",
51-
"@types/rimraf": "^3.0.0"
49+
"@types/micromatch": "^4.0.1"
5250
},
5351
"peerDependencies": {
5452
"node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"

packages/jest-core/src/__tests__/watchFileChanges.test.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import {tmpdir} from 'os';
1010
import * as path from 'path';
1111
import * as fs from 'graceful-fs';
12-
import rimraf = require('rimraf');
1312
import type {AggregatedResult} from '@jest/test-result';
1413
import {normalize} from 'jest-config';
1514
import type HasteMap from 'jest-haste-map';
@@ -36,8 +35,8 @@ describe('Watch mode flows with changed files', () => {
3635
watch = interopRequireDefault(require('../watch')).default;
3736
pipe = {write: jest.fn()} as unknown;
3837
stdin = new MockStdin();
39-
rimraf.sync(cacheDirectory);
40-
rimraf.sync(testDirectory);
38+
fs.rmSync(cacheDirectory, {force: true, recursive: true});
39+
fs.rmSync(testDirectory, {force: true, recursive: true});
4140
fs.mkdirSync(testDirectory);
4241
fs.mkdirSync(cacheDirectory);
4342
});
@@ -47,8 +46,8 @@ describe('Watch mode flows with changed files', () => {
4746
if (hasteMapInstance) {
4847
hasteMapInstance.end();
4948
}
50-
rimraf.sync(cacheDirectory);
51-
rimraf.sync(testDirectory);
49+
fs.rmSync(cacheDirectory, {force: true, recursive: true});
50+
fs.rmSync(testDirectory, {force: true, recursive: true});
5251
});
5352

5453
it('should correct require new files without legacy cache', async () => {

packages/jest-core/src/cli/index.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import chalk = require('chalk');
99
import exit = require('exit');
10-
import rimraf = require('rimraf');
10+
import * as fs from 'graceful-fs';
1111
import {CustomConsole} from '@jest/console';
1212
import type {AggregatedResult, TestContext} from '@jest/test-result';
1313
import type {Config} from '@jest/types';
@@ -63,10 +63,13 @@ export async function runCLI(
6363
}
6464

6565
if (argv.clearCache) {
66-
configs.forEach(config => {
67-
rimraf.sync(config.cacheDirectory);
68-
process.stdout.write(`Cleared ${config.cacheDirectory}\n`);
69-
});
66+
// stick in a Set to dedupe the deletions
67+
new Set(configs.map(config => config.cacheDirectory)).forEach(
68+
cacheDirectory => {
69+
fs.rmSync(cacheDirectory, {force: true, recursive: true});
70+
process.stdout.write(`Cleared ${cacheDirectory}\n`);
71+
},
72+
);
7073

7174
exit(0);
7275
}

scripts/bundleTs.mjs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import chalk from 'chalk';
1717
import fs from 'graceful-fs';
1818
import {sync as pkgDir} from 'pkg-dir';
1919
import prettier from 'prettier';
20-
import rimraf from 'rimraf';
2120
import {getPackages} from './buildUtils.mjs';
2221

2322
const prettierConfig = prettier.resolveConfig.sync(
@@ -166,10 +165,19 @@ const excludedPackages = new Set(['@jest/globals']);
166165

167166
let definitionFile = await fs.promises.readFile(filepath, 'utf8');
168167

169-
rimraf.sync(path.resolve(packageDir, 'build/**/*.d.ts'));
170-
rimraf.sync(path.resolve(packageDir, 'dist/'));
168+
fs.rmSync(path.resolve(packageDir, 'build/**/*.d.ts'), {
169+
force: true,
170+
recursive: true,
171+
});
172+
fs.rmSync(path.resolve(packageDir, 'dist/'), {
173+
force: true,
174+
recursive: true,
175+
});
171176
// this is invalid now, so remove it to not confuse `tsc`
172-
rimraf.sync(path.resolve(packageDir, 'tsconfig.tsbuildinfo'));
177+
fs.rmSync(path.resolve(packageDir, 'tsconfig.tsbuildinfo'), {
178+
force: true,
179+
recursive: true,
180+
});
173181

174182
definitionFile = definitionFile.replace(/\r\n/g, '\n');
175183

scripts/cleanE2e.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import {dirname, normalize, resolve} from 'path';
99
import {fileURLToPath} from 'url';
1010
import glob from 'glob';
11-
import rimraf from 'rimraf';
11+
import fs from 'graceful-fs';
1212

1313
const excludedModules = [
1414
'e2e/global-setup-node-modules/node_modules/',
@@ -30,5 +30,5 @@ const e2eNodeModules = glob.sync('e2e/{*,*/*}/node_modules/', {
3030
});
3131

3232
e2eNodeModules.forEach(dir => {
33-
rimraf.sync(dir, {glob: false});
33+
fs.rmSync(dir, {force: true, recursive: true});
3434
});

scripts/remove-examples.mjs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import path from 'path';
99
import {fileURLToPath} from 'url';
1010
import fs from 'graceful-fs';
11-
import rimraf from 'rimraf';
1211
import config from '../jest.config.mjs';
1312

1413
const dirname = path.dirname(fileURLToPath(import.meta.url));
@@ -22,4 +21,7 @@ fs.writeFileSync(
2221
`export default ${JSON.stringify(config, null, 2)};\n`,
2322
);
2423

25-
rimraf.sync(path.resolve(dirname, '../examples/'));
24+
fs.rmSync(path.resolve(dirname, '../examples/'), {
25+
force: true,
26+
recursive: true,
27+
});

scripts/verifyOldTs.mjs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import {fileURLToPath} from 'url';
1111
import chalk from 'chalk';
1212
import execa from 'execa';
1313
import fs from 'graceful-fs';
14-
import rimraf from 'rimraf';
1514
import stripJsonComments from 'strip-json-comments';
1615
import tempy from 'tempy';
1716
const require = createRequire(import.meta.url);
@@ -70,7 +69,7 @@ function smoketest() {
7069
),
7170
);
7271
} finally {
73-
rimraf.sync(cwd);
72+
fs.rmSync(cwd, {force: true, recursive: true});
7473
}
7574
}
7675

scripts/verifyPnP.mjs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import dedent from 'dedent';
1212
import execa from 'execa';
1313
import fs from 'graceful-fs';
1414
import yaml from 'js-yaml';
15-
import rimraf from 'rimraf';
1615
import tempy from 'tempy';
1716

1817
const rootDirectory = path.resolve(
@@ -78,5 +77,5 @@ try {
7877

7978
console.log(chalk.inverse.green(' Successfully ran Jest with PnP linker '));
8079
} finally {
81-
rimraf.sync(cwd);
80+
fs.rmSync(cwd, {force: true, recursive: true});
8281
}

yarn.lock

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2619,7 +2619,6 @@ __metadata:
26192619
"@types/graceful-fs": ^4.1.3
26202620
"@types/micromatch": ^4.0.1
26212621
"@types/node": "*"
2622-
"@types/rimraf": ^3.0.0
26232622
ansi-escapes: ^4.2.1
26242623
chalk: ^4.0.0
26252624
ci-info: ^3.2.0
@@ -2640,7 +2639,6 @@ __metadata:
26402639
jest-watcher: "workspace:^"
26412640
micromatch: ^4.0.4
26422641
pretty-format: "workspace:^"
2643-
rimraf: ^3.0.0
26442642
slash: ^3.0.0
26452643
strip-ansi: ^6.0.0
26462644
peerDependencies:
@@ -4522,7 +4520,7 @@ __metadata:
45224520
languageName: node
45234521
linkType: hard
45244522

4525-
"@types/glob@npm:*, @types/glob@npm:^7.1.1":
4523+
"@types/glob@npm:^7.1.1":
45264524
version: 7.2.0
45274525
resolution: "@types/glob@npm:7.2.0"
45284526
dependencies:
@@ -4920,16 +4918,6 @@ __metadata:
49204918
languageName: node
49214919
linkType: hard
49224920

4923-
"@types/rimraf@npm:^3.0.0":
4924-
version: 3.0.2
4925-
resolution: "@types/rimraf@npm:3.0.2"
4926-
dependencies:
4927-
"@types/glob": "*"
4928-
"@types/node": "*"
4929-
checksum: b47fa302f46434cba704d20465861ad250df79467d3d289f9d6490d3aeeb41e8cb32dd80bd1a8fd833d1e185ac719fbf9be12e05ad9ce9be094d8ee8f1405347
4930-
languageName: node
4931-
linkType: hard
4932-
49334921
"@types/sax@npm:^1.2.1":
49344922
version: 1.2.4
49354923
resolution: "@types/sax@npm:1.2.4"

0 commit comments

Comments
 (0)