summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/_fs/_fs_close.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/polyfills/_fs/_fs_close.ts')
-rw-r--r--ext/node/polyfills/_fs/_fs_close.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/ext/node/polyfills/_fs/_fs_close.ts b/ext/node/polyfills/_fs/_fs_close.ts
new file mode 100644
index 000000000..ff6082980
--- /dev/null
+++ b/ext/node/polyfills/_fs/_fs_close.ts
@@ -0,0 +1,21 @@
+// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
+import type { CallbackWithError } from "internal:deno_node/polyfills/_fs/_fs_common.ts";
+import { getValidatedFd } from "internal:deno_node/polyfills/internal/fs/utils.mjs";
+
+export function close(fd: number, callback: CallbackWithError) {
+ fd = getValidatedFd(fd);
+ setTimeout(() => {
+ let error = null;
+ try {
+ Deno.close(fd);
+ } catch (err) {
+ error = err instanceof Error ? err : new Error("[non-error thrown]");
+ }
+ callback(error);
+ }, 0);
+}
+
+export function closeSync(fd: number) {
+ fd = getValidatedFd(fd);
+ Deno.close(fd);
+}