2023-02-14 11:38:45 -05:00
|
|
|
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
2023-06-27 02:18:22 -04:00
|
|
|
|
|
|
|
// TODO(petamoriken): enable prefer-primordials for node polyfills
|
|
|
|
// deno-lint-ignore-file prefer-primordials
|
|
|
|
|
2023-03-08 06:44:54 -05:00
|
|
|
import type { CallbackWithError } from "ext:deno_node/_fs/_fs_common.ts";
|
|
|
|
import { getValidatedFd } from "ext:deno_node/internal/fs/utils.mjs";
|
2023-02-14 11:38:45 -05:00
|
|
|
|
|
|
|
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);
|
|
|
|
}
|