rimraf 4.2.0 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -22
- package/dist/cjs/package.json +2 -2
- package/dist/cjs/src/bin.d.ts.map +1 -1
- package/dist/cjs/src/bin.js +119 -17
- package/dist/cjs/src/bin.js.map +1 -1
- package/dist/cjs/src/fs.d.ts +5 -3
- package/dist/cjs/src/fs.d.ts.map +1 -1
- package/dist/cjs/src/fs.js +8 -3
- package/dist/cjs/src/fs.js.map +1 -1
- package/dist/cjs/src/ignore-enoent.d.ts.map +1 -1
- package/dist/cjs/src/ignore-enoent.js.map +1 -1
- package/dist/cjs/src/index-cjs.d.ts +40 -40
- package/dist/cjs/src/index.d.ts +43 -38
- package/dist/cjs/src/index.d.ts.map +1 -1
- package/dist/cjs/src/index.js +19 -10
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/opt-arg.d.ts +14 -6
- package/dist/cjs/src/opt-arg.d.ts.map +1 -1
- package/dist/cjs/src/opt-arg.js +8 -2
- package/dist/cjs/src/opt-arg.js.map +1 -1
- package/dist/cjs/src/path-arg.d.ts +2 -2
- package/dist/cjs/src/path-arg.d.ts.map +1 -1
- package/dist/cjs/src/path-arg.js +1 -1
- package/dist/cjs/src/path-arg.js.map +1 -1
- package/dist/cjs/src/readdir-or-error.d.ts +3 -2
- package/dist/cjs/src/readdir-or-error.d.ts.map +1 -1
- package/dist/cjs/src/readdir-or-error.js.map +1 -1
- package/dist/cjs/src/retry-busy.d.ts +2 -2
- package/dist/cjs/src/retry-busy.d.ts.map +1 -1
- package/dist/cjs/src/retry-busy.js.map +1 -1
- package/dist/cjs/src/rimraf-manual.d.ts +2 -2
- package/dist/cjs/src/rimraf-manual.d.ts.map +1 -1
- package/dist/cjs/src/rimraf-move-remove.d.ts +3 -3
- package/dist/cjs/src/rimraf-move-remove.d.ts.map +1 -1
- package/dist/cjs/src/rimraf-move-remove.js +86 -24
- package/dist/cjs/src/rimraf-move-remove.js.map +1 -1
- package/dist/cjs/src/rimraf-native.d.ts +3 -3
- package/dist/cjs/src/rimraf-native.d.ts.map +1 -1
- package/dist/cjs/src/rimraf-native.js +16 -10
- package/dist/cjs/src/rimraf-native.js.map +1 -1
- package/dist/cjs/src/rimraf-posix.d.ts +3 -3
- package/dist/cjs/src/rimraf-posix.d.ts.map +1 -1
- package/dist/cjs/src/rimraf-posix.js +87 -26
- package/dist/cjs/src/rimraf-posix.js.map +1 -1
- package/dist/cjs/src/rimraf-windows.d.ts +3 -3
- package/dist/cjs/src/rimraf-windows.d.ts.map +1 -1
- package/dist/cjs/src/rimraf-windows.js +100 -39
- package/dist/cjs/src/rimraf-windows.js.map +1 -1
- package/dist/cjs/src/use-native.d.ts +2 -2
- package/dist/cjs/src/use-native.d.ts.map +1 -1
- package/dist/cjs/src/use-native.js +6 -2
- package/dist/cjs/src/use-native.js.map +1 -1
- package/dist/mjs/fs.d.ts +5 -3
- package/dist/mjs/fs.d.ts.map +1 -1
- package/dist/mjs/fs.js +6 -2
- package/dist/mjs/fs.js.map +1 -1
- package/dist/mjs/ignore-enoent.d.ts.map +1 -1
- package/dist/mjs/ignore-enoent.js.map +1 -1
- package/dist/mjs/index.d.ts +43 -38
- package/dist/mjs/index.d.ts.map +1 -1
- package/dist/mjs/index.js +18 -9
- package/dist/mjs/index.js.map +1 -1
- package/dist/mjs/opt-arg.d.ts +14 -6
- package/dist/mjs/opt-arg.d.ts.map +1 -1
- package/dist/mjs/opt-arg.js +6 -3
- package/dist/mjs/opt-arg.js.map +1 -1
- package/dist/mjs/package.json +1 -1
- package/dist/mjs/path-arg.d.ts +2 -2
- package/dist/mjs/path-arg.d.ts.map +1 -1
- package/dist/mjs/path-arg.js +2 -2
- package/dist/mjs/path-arg.js.map +1 -1
- package/dist/mjs/readdir-or-error.d.ts +3 -2
- package/dist/mjs/readdir-or-error.d.ts.map +1 -1
- package/dist/mjs/readdir-or-error.js.map +1 -1
- package/dist/mjs/retry-busy.d.ts +2 -2
- package/dist/mjs/retry-busy.d.ts.map +1 -1
- package/dist/mjs/retry-busy.js.map +1 -1
- package/dist/mjs/rimraf-manual.d.ts +2 -2
- package/dist/mjs/rimraf-manual.d.ts.map +1 -1
- package/dist/mjs/rimraf-move-remove.d.ts +3 -3
- package/dist/mjs/rimraf-move-remove.d.ts.map +1 -1
- package/dist/mjs/rimraf-move-remove.js +85 -23
- package/dist/mjs/rimraf-move-remove.js.map +1 -1
- package/dist/mjs/rimraf-native.d.ts +3 -3
- package/dist/mjs/rimraf-native.d.ts.map +1 -1
- package/dist/mjs/rimraf-native.js +16 -10
- package/dist/mjs/rimraf-native.js.map +1 -1
- package/dist/mjs/rimraf-posix.d.ts +3 -3
- package/dist/mjs/rimraf-posix.d.ts.map +1 -1
- package/dist/mjs/rimraf-posix.js +86 -25
- package/dist/mjs/rimraf-posix.js.map +1 -1
- package/dist/mjs/rimraf-windows.d.ts +3 -3
- package/dist/mjs/rimraf-windows.d.ts.map +1 -1
- package/dist/mjs/rimraf-windows.js +99 -38
- package/dist/mjs/rimraf-windows.js.map +1 -1
- package/dist/mjs/use-native.d.ts +2 -2
- package/dist/mjs/use-native.d.ts.map +1 -1
- package/dist/mjs/use-native.js +6 -2
- package/dist/mjs/use-native.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { promises, rmSync } from './fs.js';
|
|
2
2
|
const { rm } = promises;
|
|
3
|
-
export const rimrafNative = (path, opt) =>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
export const rimrafNative = async (path, opt) => {
|
|
4
|
+
await rm(path, {
|
|
5
|
+
...opt,
|
|
6
|
+
force: true,
|
|
7
|
+
recursive: true,
|
|
8
|
+
});
|
|
9
|
+
return true;
|
|
10
|
+
};
|
|
11
|
+
export const rimrafNativeSync = (path, opt) => {
|
|
12
|
+
rmSync(path, {
|
|
13
|
+
...opt,
|
|
14
|
+
force: true,
|
|
15
|
+
recursive: true,
|
|
16
|
+
});
|
|
17
|
+
return true;
|
|
18
|
+
};
|
|
13
19
|
//# sourceMappingURL=rimraf-native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rimraf-native.js","sourceRoot":"","sources":["../../src/rimraf-native.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAC1C,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAA;AAEvB,MAAM,CAAC,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"rimraf-native.js","sourceRoot":"","sources":["../../src/rimraf-native.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAC1C,MAAM,EAAE,EAAE,EAAE,GAAG,QAAQ,CAAA;AAEvB,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,IAAY,EACZ,GAAuB,EACL,EAAE;IACpB,MAAM,EAAE,CAAC,IAAI,EAAE;QACb,GAAG,GAAG;QACN,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,GAAsB,EACb,EAAE;IACX,MAAM,CAAC,IAAI,EAAE;QACX,GAAG,GAAG;QACN,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const rimrafPosix: (path: string, opt:
|
|
3
|
-
export declare const rimrafPosixSync: (path: string, opt:
|
|
1
|
+
import { RimrafAsyncOptions, RimrafSyncOptions } from '.';
|
|
2
|
+
export declare const rimrafPosix: (path: string, opt: RimrafAsyncOptions) => Promise<boolean>;
|
|
3
|
+
export declare const rimrafPosixSync: (path: string, opt: RimrafSyncOptions) => boolean;
|
|
4
4
|
//# sourceMappingURL=rimraf-posix.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rimraf-posix.d.ts","sourceRoot":"","sources":["../../src/rimraf-posix.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"rimraf-posix.d.ts","sourceRoot":"","sources":["../../src/rimraf-posix.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAA;AAGzD,eAAO,MAAM,WAAW,SAAgB,MAAM,OAAO,kBAAkB,qBAUtE,CAAA;AAED,eAAO,MAAM,eAAe,SAAU,MAAM,OAAO,iBAAiB,YAUnE,CAAA"}
|
package/dist/mjs/rimraf-posix.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
// the simple recursive removal, where unlink and rmdir are atomic
|
|
2
2
|
// Note that this approach does NOT work on Windows!
|
|
3
|
-
// We
|
|
4
|
-
//
|
|
5
|
-
// calls), because sunos will let root unlink a directory, and some
|
|
3
|
+
// We stat first and only unlink if the Dirent isn't a directory,
|
|
4
|
+
// because sunos will let root unlink a directory, and some
|
|
6
5
|
// SUPER weird breakage happens as a result.
|
|
7
|
-
import { promises, rmdirSync, unlinkSync } from './fs.js';
|
|
8
|
-
const { rmdir, unlink } = promises;
|
|
6
|
+
import { lstatSync, promises, rmdirSync, unlinkSync } from './fs.js';
|
|
7
|
+
const { lstat, rmdir, unlink } = promises;
|
|
9
8
|
import { parse, resolve } from 'path';
|
|
10
9
|
import { readdirOrError, readdirOrErrorSync } from './readdir-or-error.js';
|
|
11
10
|
import { ignoreENOENT, ignoreENOENTSync } from './ignore-enoent.js';
|
|
@@ -13,45 +12,107 @@ export const rimrafPosix = async (path, opt) => {
|
|
|
13
12
|
if (opt?.signal?.aborted) {
|
|
14
13
|
throw opt.signal.reason;
|
|
15
14
|
}
|
|
16
|
-
|
|
15
|
+
try {
|
|
16
|
+
return await rimrafPosixDir(path, opt, await lstat(path));
|
|
17
|
+
}
|
|
18
|
+
catch (er) {
|
|
19
|
+
if (er?.code === 'ENOENT')
|
|
20
|
+
return true;
|
|
21
|
+
throw er;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
export const rimrafPosixSync = (path, opt) => {
|
|
25
|
+
if (opt?.signal?.aborted) {
|
|
26
|
+
throw opt.signal.reason;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
return rimrafPosixDirSync(path, opt, lstatSync(path));
|
|
30
|
+
}
|
|
31
|
+
catch (er) {
|
|
32
|
+
if (er?.code === 'ENOENT')
|
|
33
|
+
return true;
|
|
34
|
+
throw er;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const rimrafPosixDir = async (path, opt, ent) => {
|
|
38
|
+
if (opt?.signal?.aborted) {
|
|
39
|
+
throw opt.signal.reason;
|
|
40
|
+
}
|
|
41
|
+
const entries = ent.isDirectory() ? await readdirOrError(path) : null;
|
|
17
42
|
if (!Array.isArray(entries)) {
|
|
18
|
-
if
|
|
19
|
-
|
|
43
|
+
// this can only happen if lstat/readdir lied, or if the dir was
|
|
44
|
+
// swapped out with a file at just the right moment.
|
|
45
|
+
/* c8 ignore start */
|
|
46
|
+
if (entries) {
|
|
47
|
+
if (entries.code === 'ENOENT') {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
if (entries.code !== 'ENOTDIR') {
|
|
51
|
+
throw entries;
|
|
52
|
+
}
|
|
20
53
|
}
|
|
21
|
-
|
|
22
|
-
|
|
54
|
+
/* c8 ignore stop */
|
|
55
|
+
if (opt.filter && !(await opt.filter(path))) {
|
|
56
|
+
return false;
|
|
23
57
|
}
|
|
24
|
-
|
|
58
|
+
await ignoreENOENT(unlink(path));
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
const removedAll = (await Promise.all(entries.map(ent => rimrafPosixDir(resolve(path, ent.name), opt, ent)))).reduce((a, b) => a && b, true);
|
|
62
|
+
if (!removedAll) {
|
|
63
|
+
return false;
|
|
25
64
|
}
|
|
26
|
-
await Promise.all(entries.map(entry => rimrafPosix(resolve(path, entry), opt)));
|
|
27
65
|
// we don't ever ACTUALLY try to unlink /, because that can never work
|
|
28
66
|
// but when preserveRoot is false, we could be operating on it.
|
|
29
67
|
// No need to check if preserveRoot is not false.
|
|
30
68
|
if (opt.preserveRoot === false && path === parse(path).root) {
|
|
31
|
-
return;
|
|
69
|
+
return false;
|
|
32
70
|
}
|
|
33
|
-
|
|
71
|
+
if (opt.filter && !(await opt.filter(path))) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
await ignoreENOENT(rmdir(path));
|
|
75
|
+
return true;
|
|
34
76
|
};
|
|
35
|
-
|
|
77
|
+
const rimrafPosixDirSync = (path, opt, ent) => {
|
|
36
78
|
if (opt?.signal?.aborted) {
|
|
37
79
|
throw opt.signal.reason;
|
|
38
80
|
}
|
|
39
|
-
const entries = readdirOrErrorSync(path);
|
|
81
|
+
const entries = ent.isDirectory() ? readdirOrErrorSync(path) : null;
|
|
40
82
|
if (!Array.isArray(entries)) {
|
|
41
|
-
if
|
|
42
|
-
|
|
83
|
+
// this can only happen if lstat/readdir lied, or if the dir was
|
|
84
|
+
// swapped out with a file at just the right moment.
|
|
85
|
+
/* c8 ignore start */
|
|
86
|
+
if (entries) {
|
|
87
|
+
if (entries.code === 'ENOENT') {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
if (entries.code !== 'ENOTDIR') {
|
|
91
|
+
throw entries;
|
|
92
|
+
}
|
|
43
93
|
}
|
|
44
|
-
|
|
45
|
-
|
|
94
|
+
/* c8 ignore stop */
|
|
95
|
+
if (opt.filter && !opt.filter(path)) {
|
|
96
|
+
return false;
|
|
46
97
|
}
|
|
47
|
-
|
|
98
|
+
ignoreENOENTSync(() => unlinkSync(path));
|
|
99
|
+
return true;
|
|
48
100
|
}
|
|
49
|
-
|
|
50
|
-
|
|
101
|
+
let removedAll = true;
|
|
102
|
+
for (const ent of entries) {
|
|
103
|
+
const p = resolve(path, ent.name);
|
|
104
|
+
removedAll = rimrafPosixDirSync(p, opt, ent) && removedAll;
|
|
51
105
|
}
|
|
52
106
|
if (opt.preserveRoot === false && path === parse(path).root) {
|
|
53
|
-
return;
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
if (!removedAll) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
if (opt.filter && !opt.filter(path)) {
|
|
113
|
+
return false;
|
|
54
114
|
}
|
|
55
|
-
|
|
115
|
+
ignoreENOENTSync(() => rmdirSync(path));
|
|
116
|
+
return true;
|
|
56
117
|
};
|
|
57
118
|
//# sourceMappingURL=rimraf-posix.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rimraf-posix.js","sourceRoot":"","sources":["../../src/rimraf-posix.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,oDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"rimraf-posix.js","sourceRoot":"","sources":["../../src/rimraf-posix.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const rimrafWindows: (path: string, opt:
|
|
3
|
-
export declare const rimrafWindowsSync: (path: string, opt:
|
|
1
|
+
import { RimrafAsyncOptions, RimrafSyncOptions } from '.';
|
|
2
|
+
export declare const rimrafWindows: (path: string, opt: RimrafAsyncOptions) => Promise<boolean>;
|
|
3
|
+
export declare const rimrafWindowsSync: (path: string, opt: RimrafSyncOptions) => boolean;
|
|
4
4
|
//# sourceMappingURL=rimraf-windows.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rimraf-windows.d.ts","sourceRoot":"","sources":["../../src/rimraf-windows.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rimraf-windows.d.ts","sourceRoot":"","sources":["../../src/rimraf-windows.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAA;AA2DzD,eAAO,MAAM,aAAa,SAAgB,MAAM,OAAO,kBAAkB,qBAUxE,CAAA;AAED,eAAO,MAAM,iBAAiB,SAAU,MAAM,OAAO,iBAAiB,YAUrE,CAAA"}
|
|
@@ -9,28 +9,30 @@
|
|
|
9
9
|
// Note: "move then remove" is 2-10 times slower, and just as unreliable.
|
|
10
10
|
import { parse, resolve } from 'path';
|
|
11
11
|
import { fixEPERM, fixEPERMSync } from './fix-eperm.js';
|
|
12
|
-
import { promises, rmdirSync, unlinkSync } from './fs.js';
|
|
12
|
+
import { lstatSync, promises, rmdirSync, unlinkSync } from './fs.js';
|
|
13
13
|
import { ignoreENOENT, ignoreENOENTSync } from './ignore-enoent.js';
|
|
14
14
|
import { readdirOrError, readdirOrErrorSync } from './readdir-or-error.js';
|
|
15
15
|
import { retryBusy, retryBusySync } from './retry-busy.js';
|
|
16
16
|
import { rimrafMoveRemove, rimrafMoveRemoveSync } from './rimraf-move-remove.js';
|
|
17
|
-
const { unlink, rmdir } = promises;
|
|
17
|
+
const { unlink, rmdir, lstat } = promises;
|
|
18
18
|
const rimrafWindowsFile = retryBusy(fixEPERM(unlink));
|
|
19
19
|
const rimrafWindowsFileSync = retryBusySync(fixEPERMSync(unlinkSync));
|
|
20
|
-
const
|
|
21
|
-
const
|
|
20
|
+
const rimrafWindowsDirRetry = retryBusy(fixEPERM(rmdir));
|
|
21
|
+
const rimrafWindowsDirRetrySync = retryBusySync(fixEPERMSync(rmdirSync));
|
|
22
22
|
const rimrafWindowsDirMoveRemoveFallback = async (path, opt) => {
|
|
23
23
|
/* c8 ignore start */
|
|
24
24
|
if (opt?.signal?.aborted) {
|
|
25
25
|
throw opt.signal.reason;
|
|
26
26
|
}
|
|
27
27
|
/* c8 ignore stop */
|
|
28
|
+
// already filtered, remove from options so we don't call unnecessarily
|
|
29
|
+
const { filter, ...options } = opt;
|
|
28
30
|
try {
|
|
29
|
-
await
|
|
31
|
+
return await rimrafWindowsDirRetry(path, options);
|
|
30
32
|
}
|
|
31
33
|
catch (er) {
|
|
32
34
|
if (er?.code === 'ENOTEMPTY') {
|
|
33
|
-
return await rimrafMoveRemove(path,
|
|
35
|
+
return await rimrafMoveRemove(path, options);
|
|
34
36
|
}
|
|
35
37
|
throw er;
|
|
36
38
|
}
|
|
@@ -39,12 +41,15 @@ const rimrafWindowsDirMoveRemoveFallbackSync = (path, opt) => {
|
|
|
39
41
|
if (opt?.signal?.aborted) {
|
|
40
42
|
throw opt.signal.reason;
|
|
41
43
|
}
|
|
44
|
+
// already filtered, remove from options so we don't call unnecessarily
|
|
45
|
+
const { filter, ...options } = opt;
|
|
42
46
|
try {
|
|
43
|
-
|
|
47
|
+
return rimrafWindowsDirRetrySync(path, options);
|
|
44
48
|
}
|
|
45
49
|
catch (er) {
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
const fer = er;
|
|
51
|
+
if (fer?.code === 'ENOTEMPTY') {
|
|
52
|
+
return rimrafMoveRemoveSync(path, options);
|
|
48
53
|
}
|
|
49
54
|
throw er;
|
|
50
55
|
}
|
|
@@ -52,65 +57,121 @@ const rimrafWindowsDirMoveRemoveFallbackSync = (path, opt) => {
|
|
|
52
57
|
const START = Symbol('start');
|
|
53
58
|
const CHILD = Symbol('child');
|
|
54
59
|
const FINISH = Symbol('finish');
|
|
55
|
-
const
|
|
56
|
-
|
|
60
|
+
export const rimrafWindows = async (path, opt) => {
|
|
61
|
+
if (opt?.signal?.aborted) {
|
|
62
|
+
throw opt.signal.reason;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
return await rimrafWindowsDir(path, opt, await lstat(path), START);
|
|
66
|
+
}
|
|
67
|
+
catch (er) {
|
|
68
|
+
if (er?.code === 'ENOENT')
|
|
69
|
+
return true;
|
|
70
|
+
throw er;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
export const rimrafWindowsSync = (path, opt) => {
|
|
57
74
|
if (opt?.signal?.aborted) {
|
|
58
75
|
throw opt.signal.reason;
|
|
59
76
|
}
|
|
60
|
-
|
|
61
|
-
|
|
77
|
+
try {
|
|
78
|
+
return rimrafWindowsDirSync(path, opt, lstatSync(path), START);
|
|
62
79
|
}
|
|
63
|
-
|
|
80
|
+
catch (er) {
|
|
81
|
+
if (er?.code === 'ENOENT')
|
|
82
|
+
return true;
|
|
83
|
+
throw er;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
const rimrafWindowsDir = async (path, opt, ent, state = START) => {
|
|
87
|
+
if (opt?.signal?.aborted) {
|
|
88
|
+
throw opt.signal.reason;
|
|
89
|
+
}
|
|
90
|
+
const entries = ent.isDirectory() ? await readdirOrError(path) : null;
|
|
64
91
|
if (!Array.isArray(entries)) {
|
|
65
|
-
if
|
|
66
|
-
|
|
92
|
+
// this can only happen if lstat/readdir lied, or if the dir was
|
|
93
|
+
// swapped out with a file at just the right moment.
|
|
94
|
+
/* c8 ignore start */
|
|
95
|
+
if (entries) {
|
|
96
|
+
if (entries.code === 'ENOENT') {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
if (entries.code !== 'ENOTDIR') {
|
|
100
|
+
throw entries;
|
|
101
|
+
}
|
|
67
102
|
}
|
|
68
|
-
|
|
69
|
-
|
|
103
|
+
/* c8 ignore stop */
|
|
104
|
+
if (opt.filter && !(await opt.filter(path))) {
|
|
105
|
+
return false;
|
|
70
106
|
}
|
|
71
107
|
// is a file
|
|
72
|
-
|
|
108
|
+
await ignoreENOENT(rimrafWindowsFile(path, opt));
|
|
109
|
+
return true;
|
|
73
110
|
}
|
|
74
|
-
|
|
111
|
+
const s = state === START ? CHILD : state;
|
|
112
|
+
const removedAll = (await Promise.all(entries.map(ent => rimrafWindowsDir(resolve(path, ent.name), opt, ent, s)))).reduce((a, b) => a && b, true);
|
|
75
113
|
if (state === START) {
|
|
76
|
-
return
|
|
114
|
+
return rimrafWindowsDir(path, opt, ent, FINISH);
|
|
77
115
|
}
|
|
78
116
|
else if (state === FINISH) {
|
|
79
117
|
if (opt.preserveRoot === false && path === parse(path).root) {
|
|
80
|
-
return;
|
|
118
|
+
return false;
|
|
81
119
|
}
|
|
82
|
-
|
|
120
|
+
if (!removedAll) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
if (opt.filter && !(await opt.filter(path))) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
await ignoreENOENT(rimrafWindowsDirMoveRemoveFallback(path, opt));
|
|
83
127
|
}
|
|
128
|
+
return true;
|
|
84
129
|
};
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
throw new TypeError('invalid third argument passed to rimraf');
|
|
88
|
-
}
|
|
89
|
-
const entries = readdirOrErrorSync(path);
|
|
130
|
+
const rimrafWindowsDirSync = (path, opt, ent, state = START) => {
|
|
131
|
+
const entries = ent.isDirectory() ? readdirOrErrorSync(path) : null;
|
|
90
132
|
if (!Array.isArray(entries)) {
|
|
91
|
-
if
|
|
92
|
-
|
|
133
|
+
// this can only happen if lstat/readdir lied, or if the dir was
|
|
134
|
+
// swapped out with a file at just the right moment.
|
|
135
|
+
/* c8 ignore start */
|
|
136
|
+
if (entries) {
|
|
137
|
+
if (entries.code === 'ENOENT') {
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
if (entries.code !== 'ENOTDIR') {
|
|
141
|
+
throw entries;
|
|
142
|
+
}
|
|
93
143
|
}
|
|
94
|
-
|
|
95
|
-
|
|
144
|
+
/* c8 ignore stop */
|
|
145
|
+
if (opt.filter && !opt.filter(path)) {
|
|
146
|
+
return false;
|
|
96
147
|
}
|
|
97
148
|
// is a file
|
|
98
|
-
|
|
149
|
+
ignoreENOENTSync(() => rimrafWindowsFileSync(path, opt));
|
|
150
|
+
return true;
|
|
99
151
|
}
|
|
100
|
-
|
|
152
|
+
let removedAll = true;
|
|
153
|
+
for (const ent of entries) {
|
|
101
154
|
const s = state === START ? CHILD : state;
|
|
102
|
-
|
|
155
|
+
const p = resolve(path, ent.name);
|
|
156
|
+
removedAll = rimrafWindowsDirSync(p, opt, ent, s) && removedAll;
|
|
103
157
|
}
|
|
104
158
|
if (state === START) {
|
|
105
|
-
return
|
|
159
|
+
return rimrafWindowsDirSync(path, opt, ent, FINISH);
|
|
106
160
|
}
|
|
107
161
|
else if (state === FINISH) {
|
|
108
162
|
if (opt.preserveRoot === false && path === parse(path).root) {
|
|
109
|
-
return;
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
if (!removedAll) {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
if (opt.filter && !opt.filter(path)) {
|
|
169
|
+
return false;
|
|
110
170
|
}
|
|
111
|
-
|
|
171
|
+
ignoreENOENTSync(() => {
|
|
112
172
|
rimrafWindowsDirMoveRemoveFallbackSync(path, opt);
|
|
113
173
|
});
|
|
114
174
|
}
|
|
175
|
+
return true;
|
|
115
176
|
};
|
|
116
177
|
//# sourceMappingURL=rimraf-windows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rimraf-windows.js","sourceRoot":"","sources":["../../src/rimraf-windows.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,wEAAwE;AACxE,gCAAgC;AAChC,0EAA0E;AAC1E,sBAAsB;AACtB,EAAE;AACF,yEAAyE;
|
|
1
|
+
{"version":3,"file":"rimraf-windows.js","sourceRoot":"","sources":["../../src/rimraf-windows.ts"],"names":[],"mappings":"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"}
|
package/dist/mjs/use-native.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RimrafOptions } from './index.js';
|
|
2
|
-
export declare const useNative: (opt?:
|
|
1
|
+
import { RimrafAsyncOptions, RimrafOptions } from './index.js';
|
|
2
|
+
export declare const useNative: (opt?: RimrafAsyncOptions) => boolean;
|
|
3
3
|
export declare const useNativeSync: (opt?: RimrafOptions) => boolean;
|
|
4
4
|
//# sourceMappingURL=use-native.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-native.d.ts","sourceRoot":"","sources":["../../src/use-native.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"use-native.d.ts","sourceRoot":"","sources":["../../src/use-native.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI9D,eAAO,MAAM,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,kBAAkB,KAAK,OAGb,CAAA;AACzC,eAAO,MAAM,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,KAAK,OAGZ,CAAA"}
|
package/dist/mjs/use-native.js
CHANGED
|
@@ -4,6 +4,10 @@ const hasNative = +versArr[0] > 14 || (+versArr[0] === 14 && +versArr[1] >= 14);
|
|
|
4
4
|
// we do NOT use native by default on Windows, because Node's native
|
|
5
5
|
// rm implementation is less advanced. Change this code if that changes.
|
|
6
6
|
import platform from './platform.js';
|
|
7
|
-
export const useNative = !hasNative || platform === 'win32'
|
|
8
|
-
|
|
7
|
+
export const useNative = !hasNative || platform === 'win32'
|
|
8
|
+
? () => false
|
|
9
|
+
: opt => !opt?.signal && !opt?.filter;
|
|
10
|
+
export const useNativeSync = !hasNative || platform === 'win32'
|
|
11
|
+
? () => false
|
|
12
|
+
: opt => !opt?.signal && !opt?.filter;
|
|
9
13
|
//# sourceMappingURL=use-native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-native.js","sourceRoot":"","sources":["../../src/use-native.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAA;AAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACpD,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAE/E,oEAAoE;AACpE,yEAAyE;AACzE,OAAO,QAAQ,MAAM,eAAe,CAAA;AACpC,MAAM,CAAC,MAAM,SAAS,GACpB,CAAC,SAAS,IAAI,QAAQ,KAAK,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"use-native.js","sourceRoot":"","sources":["../../src/use-native.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,OAAO,CAAC,OAAO,CAAA;AAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AACpD,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAE/E,oEAAoE;AACpE,yEAAyE;AACzE,OAAO,QAAQ,MAAM,eAAe,CAAA;AACpC,MAAM,CAAC,MAAM,SAAS,GACpB,CAAC,SAAS,IAAI,QAAQ,KAAK,OAAO;IAChC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;IACb,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,CAAA;AACzC,MAAM,CAAC,MAAM,aAAa,GACxB,CAAC,SAAS,IAAI,QAAQ,KAAK,OAAO;IAChC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;IACb,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rimraf",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.1",
|
|
4
4
|
"main": "./dist/cjs/src/index-cjs.js",
|
|
5
5
|
"module": "./dist/mjs/index.js",
|
|
6
6
|
"types": "./dist/mjs/index.d.ts",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"eslint-config-prettier": "^8.6.0",
|
|
58
58
|
"mkdirp": "1",
|
|
59
59
|
"prettier": "^2.8.2",
|
|
60
|
-
"tap": "^16.3.
|
|
60
|
+
"tap": "^16.3.4",
|
|
61
61
|
"ts-node": "^10.9.1",
|
|
62
62
|
"typedoc": "^0.23.21",
|
|
63
63
|
"typescript": "^4.9.3"
|