2024-01-01 14:58:21 -05:00
|
|
|
// Copyright 2018-2024 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";
|
2024-01-24 09:59:55 -05:00
|
|
|
import { core } from "ext:core/mod.js";
|
2023-02-14 11:38:45 -05:00
|
|
|
|
|
|
|
export function close(fd: number, callback: CallbackWithError) {
|
|
|
|
fd = getValidatedFd(fd);
|
|
|
|
setTimeout(() => {
|
|
|
|
let error = null;
|
|
|
|
try {
|
2024-01-24 09:59:55 -05:00
|
|
|
// TODO(@littledivy): Treat `fd` as real file descriptor. `rid` is an
|
|
|
|
// implementation detail and may change.
|
|
|
|
core.close(fd);
|
2023-02-14 11:38:45 -05:00
|
|
|
} catch (err) {
|
|
|
|
error = err instanceof Error ? err : new Error("[non-error thrown]");
|
|
|
|
}
|
|
|
|
callback(error);
|
|
|
|
}, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
export function closeSync(fd: number) {
|
|
|
|
fd = getValidatedFd(fd);
|
2024-01-24 09:59:55 -05:00
|
|
|
// TODO(@littledivy): Treat `fd` as real file descriptor. `rid` is an
|
|
|
|
// implementation detail and may change.
|
|
|
|
core.close(fd);
|
2023-02-14 11:38:45 -05:00
|
|
|
}
|