diff options
Diffstat (limited to 'ext/node/polyfills/_fs/_fs_close.ts')
-rw-r--r-- | ext/node/polyfills/_fs/_fs_close.ts | 21 |
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); +} |