deno.land / std@0.167.0 / node / _fs / _fs_rmdir.ts

نووسراو ببینە
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license.import { emitRecursiveRmdirWarning, getValidatedPath, validateRmdirOptions, validateRmOptions, validateRmOptionsSync,} from "../internal/fs/utils.mjs";import { toNamespacedPath } from "../path.ts";import { denoErrorToNodeError, ERR_FS_RMDIR_ENOTDIR,} from "../internal/errors.ts";import { Buffer } from "../buffer.ts";import { promisify } from "../internal/util.mjs";
type rmdirOptions = { maxRetries?: number; recursive?: boolean; retryDelay?: number;};
type rmdirCallback = (err?: Error) => void;
export function rmdir(path: string | URL, callback: rmdirCallback): void;export function rmdir( path: string | URL, options: rmdirOptions, callback: rmdirCallback,): void;export function rmdir( path: string | URL, optionsOrCallback: rmdirOptions | rmdirCallback, maybeCallback?: rmdirCallback,) { path = toNamespacedPath(getValidatedPath(path) as string);
const callback = typeof optionsOrCallback === "function" ? optionsOrCallback : maybeCallback; const options = typeof optionsOrCallback === "object" ? optionsOrCallback : undefined;
if (!callback) throw new Error("No callback function supplied");
if (options?.recursive) { emitRecursiveRmdirWarning(); validateRmOptions( path, { ...options, force: false }, true, (err: Error | null | false, options: rmdirOptions) => { if (err === false) { return callback(new ERR_FS_RMDIR_ENOTDIR(path.toString())); } if (err) { return callback(err); }
Deno.remove(path, { recursive: options?.recursive }) .then((_) => callback(), callback); }, ); } else { validateRmdirOptions(options); Deno.remove(path, { recursive: options?.recursive }) .then((_) => callback(), (err: unknown) => { callback( err instanceof Error ? denoErrorToNodeError(err, { syscall: "rmdir" }) : err, ); }); }}
export const rmdirPromise = promisify(rmdir) as ( path: string | Buffer | URL, options?: rmdirOptions,) => Promise<void>;
export function rmdirSync(path: string | Buffer | URL, options?: rmdirOptions) { path = getValidatedPath(path); if (options?.recursive) { emitRecursiveRmdirWarning(); options = validateRmOptionsSync(path, { ...options, force: false }, true); if (options === false) { throw new ERR_FS_RMDIR_ENOTDIR(path.toString()); } } else { validateRmdirOptions(options); }
try { Deno.removeSync(toNamespacedPath(path as string), { recursive: options?.recursive, }); } catch (err: unknown) { throw (err instanceof Error ? denoErrorToNodeError(err, { syscall: "rmdir" }) : err); }}
std

Version Info

Tagged at
a year ago