summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/_fs/_fs_ftruncate.ts
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/polyfills/_fs/_fs_ftruncate.ts')
-rw-r--r--ext/node/polyfills/_fs/_fs_ftruncate.ts23
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);
+}