summaryrefslogtreecommitdiff
path: root/std/node/_fs/_fs_rmdir.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/node/_fs/_fs_rmdir.ts')
-rw-r--r--std/node/_fs/_fs_rmdir.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/std/node/_fs/_fs_rmdir.ts b/std/node/_fs/_fs_rmdir.ts
new file mode 100644
index 000000000..2035a1e71
--- /dev/null
+++ b/std/node/_fs/_fs_rmdir.ts
@@ -0,0 +1,36 @@
+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,
+) {
+ const callback = typeof optionsOrCallback === "function"
+ ? optionsOrCallback
+ : maybeCallback;
+ const options = typeof optionsOrCallback === "object"
+ ? optionsOrCallback
+ : undefined;
+
+ if (!callback) throw new Error("No callback function supplied");
+
+ Deno.remove(path, { recursive: options?.recursive })
+ .then((_) => callback())
+ .catch(callback);
+}
+
+export function rmdirSync(path: string | URL, options?: rmdirOptions) {
+ Deno.removeSync(path, { recursive: options?.recursive });
+}