summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/_fs/_fs_writev.d.ts
blob: daa4dbbcf4578dc8daeaabe59a10dd991f5b9df8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
// Forked from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/d9df51e34526f48bef4e2546a006157b391ad96c/types/node/fs.d.ts

import { ErrnoException } from "ext:deno_node/_global.d.ts";

/**
 * Write an array of `ArrayBufferView`s to the file specified by `fd` using`writev()`.
 *
 * `position` is the offset from the beginning of the file where this data
 * should be written. If `typeof position !== 'number'`, the data will be written
 * at the current position.
 *
 * The callback will be given three arguments: `err`, `bytesWritten`, and`buffers`. `bytesWritten` is how many bytes were written from `buffers`.
 *
 * If this method is `util.promisify()` ed, it returns a promise for an`Object` with `bytesWritten` and `buffers` properties.
 *
 * It is unsafe to use `fs.writev()` multiple times on the same file without
 * waiting for the callback. For this scenario, use {@link createWriteStream}.
 *
 * On Linux, positional writes don't work when the file is opened in append mode.
 * The kernel ignores the position argument and always appends the data to
 * the end of the file.
 * @since v12.9.0
 */
export function writev(
  fd: number,
  buffers: ReadonlyArray<ArrayBufferView>,
  cb: (
    err: ErrnoException | null,
    bytesWritten: number,
    buffers: ArrayBufferView[],
  ) => void,
): void;
export function writev(
  fd: number,
  buffers: ReadonlyArray<ArrayBufferView>,
  position: number | null,
  cb: (
    err: ErrnoException | null,
    bytesWritten: number,
    buffers: ArrayBufferView[],
  ) => void,
): void;
export interface WriteVResult {
  bytesWritten: number;
  buffers: ArrayBufferView[];
}
export namespace writev {
  function __promisify__(
    fd: number,
    buffers: ReadonlyArray<ArrayBufferView>,
    position?: number,
  ): Promise<WriteVResult>;
}
/**
 * For detailed information, see the documentation of the asynchronous version of
 * this API: {@link writev}.
 * @since v12.9.0
 * @return The number of bytes written.
 */
export function writevSync(
  fd: number,
  buffers: ReadonlyArray<ArrayBufferView>,
  position?: number,
): number;