diff options
Diffstat (limited to 'ext/node/polyfills/_fs/_fs_ftruncate.ts')
-rw-r--r-- | ext/node/polyfills/_fs/_fs_ftruncate.ts | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/ext/node/polyfills/_fs/_fs_ftruncate.ts b/ext/node/polyfills/_fs/_fs_ftruncate.ts new file mode 100644 index 000000000..9c7bfbd01 --- /dev/null +++ b/ext/node/polyfills/_fs/_fs_ftruncate.ts @@ -0,0 +1,23 @@ +// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +import { CallbackWithError } from "internal:deno_node/polyfills/_fs/_fs_common.ts"; + +export function ftruncate( + fd: number, + lenOrCallback: number | CallbackWithError, + maybeCallback?: CallbackWithError, +) { + const len: number | undefined = typeof lenOrCallback === "number" + ? lenOrCallback + : undefined; + const callback: CallbackWithError = typeof lenOrCallback === "function" + ? lenOrCallback + : maybeCallback as CallbackWithError; + + if (!callback) throw new Error("No callback function supplied"); + + Deno.ftruncate(fd, len).then(() => callback(null), callback); +} + +export function ftruncateSync(fd: number, len?: number) { + Deno.ftruncateSync(fd, len); +} |