summaryrefslogtreecommitdiff
path: root/cli/dts/lib.deno.ns.d.ts
diff options
context:
space:
mode:
authorCasper Beyer <caspervonb@pm.me>2021-04-11 20:05:22 +0800
committerGitHub <noreply@github.com>2021-04-11 14:05:22 +0200
commitf5a9474952f459a5095e0aae68e0984fdd84b210 (patch)
tree314c1e9e9c5d86e0360b5e21d308d870d009723d /cli/dts/lib.deno.ns.d.ts
parentc0b6e09172f242e98a5bc82bd6f5dc20f705c8a2 (diff)
feat: stabilize Deno.ftruncate and Deno.ftruncateSync (#10126)
This stabilizes Deno.ftruncate and Deno.ftruncateSync. This is a well known system call and the interface is not going to change. Implicitly requires write permissions as the file has to be opened with write to be truncated.
Diffstat (limited to 'cli/dts/lib.deno.ns.d.ts')
-rw-r--r--cli/dts/lib.deno.ns.d.ts51
1 files changed, 51 insertions, 0 deletions
diff --git a/cli/dts/lib.deno.ns.d.ts b/cli/dts/lib.deno.ns.d.ts
index 09f39d6b8..931d28877 100644
--- a/cli/dts/lib.deno.ns.d.ts
+++ b/cli/dts/lib.deno.ns.d.ts
@@ -2335,4 +2335,55 @@ declare namespace Deno {
newpath: string,
options?: SymlinkOptions,
): Promise<void>;
+
+ /**
+ * Synchronously truncates or extends the specified file stream, to reach the
+ * specified `len`.
+ *
+ * If `len` is not specified then the entire file contents are truncated as if len was set to 0.
+ *
+ * if the file previously was larger than this new length, the extra data is lost.
+ *
+ * if the file previously was shorter, it is extended, and the extended part reads as null bytes ('\0').
+ *
+ * ```ts
+ * // truncate the entire file
+ * const file = Deno.open("my_file.txt", { read: true, write: true, truncate: true, create: true });
+ * Deno.ftruncateSync(file.rid);
+ *
+ * // truncate part of the file
+ * const file = Deno.open("my_file.txt", { read: true, write: true, create: true });
+ * Deno.write(file.rid, new TextEncoder().encode("Hello World"));
+ * Deno.ftruncateSync(file.rid, 7);
+ * const data = new Uint8Array(32);
+ * Deno.readSync(file.rid, data);
+ * console.log(new TextDecoder().decode(data)); // Hello W
+ * ```
+ */
+ export function ftruncateSync(rid: number, len?: number): void;
+
+ /**
+ * Truncates or extends the specified file stream, to reach the specified `len`.
+ *
+ * If `len` is not specified then the entire file contents are truncated as if len was set to 0.
+ *
+ * If the file previously was larger than this new length, the extra data is lost.
+ *
+ * If the file previously was shorter, it is extended, and the extended part reads as null bytes ('\0').
+ *
+ * ```ts
+ * // truncate the entire file
+ * const file = Deno.open("my_file.txt", { read: true, write: true, create: true });
+ * await Deno.ftruncate(file.rid);
+ *
+ * // truncate part of the file
+ * const file = Deno.open("my_file.txt", { read: true, write: true, create: true });
+ * await Deno.write(file.rid, new TextEncoder().encode("Hello World"));
+ * await Deno.ftruncate(file.rid, 7);
+ * const data = new Uint8Array(32);
+ * await Deno.read(file.rid, data);
+ * console.log(new TextDecoder().decode(data)); // Hello W
+ * ```
+ */
+ export function ftruncate(rid: number, len?: number): Promise<void>;
}