Skip to content

Buffer

[<Interface>]
type Buffer<'TArrayBuffer> =
    abstract member compare (target: Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>, ?targetStart: float, ?targetEnd: float, ?sourceStart: float, ?sourceEnd: float) : Direction
    abstract member copy (target: Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>, ?targetStart: float, ?sourceStart: float, ?sourceEnd: float) : float
    abstract member copyWithin (target: float, start: float, ?end: float) : Buffer<'TArrayBuffer>
    abstract member equals (otherBuffer: Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>) : bool
    abstract member every (predicate: Predicate<'TArrayBuffer>, ?thisArg: obj) : bool
    abstract member fill (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, encoding: BufferEncoding) : Buffer<'TArrayBuffer>
    abstract member fill (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, offset: float, encoding: BufferEncoding) : Buffer<'TArrayBuffer>
    abstract member fill (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, ?offset: float, ?end: float, ?encoding: BufferEncoding) : Buffer<'TArrayBuffer>
    abstract member filter (predicate: Predicate<'TArrayBuffer>, ?thisArg: obj) : Uint8Array<ArrayBuffer>
    abstract member find (predicate: Predicate<'TArrayBuffer>, ?thisArg: obj) : float option
    abstract member findIndex (predicate: Predicate<'TArrayBuffer>, ?thisArg: obj) : float
    abstract member forEach (callbackfn: Callbackfn<'TArrayBuffer>, ?thisArg: obj) : unit
    abstract member includes (value: U3<string,float,Buffer<U2<ArrayBuffer,SharedArrayBuffer>>>, encoding: BufferEncoding) : bool
    abstract member includes (value: U3<string,float,Buffer<U2<ArrayBuffer,SharedArrayBuffer>>>, ?byteOffset: float, ?encoding: BufferEncoding) : bool
    abstract member indexOf (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, encoding: BufferEncoding) : float
    abstract member indexOf (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, ?byteOffset: float, ?encoding: BufferEncoding) : float
    abstract member lastIndexOf (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, encoding: BufferEncoding) : float
    abstract member lastIndexOf (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, ?byteOffset: float, ?encoding: BufferEncoding) : float
    abstract member map (callbackfn: Callbackfn<'TArrayBuffer>, ?thisArg: obj) : Uint8Array<ArrayBuffer>
    abstract member readBigInt64BE (?offset: float) : bigint
    abstract member readBigInt64LE (?offset: float) : bigint
    abstract member readBigUInt64BE (?offset: float) : bigint
    abstract member readBigUInt64LE (?offset: float) : bigint
    abstract member readBigUint64BE (?offset: float) : bigint
    abstract member readBigUint64LE (?offset: float) : bigint
    abstract member readDoubleBE (?offset: float) : float
    abstract member readDoubleLE (?offset: float) : float
    abstract member readFloatBE (?offset: float) : float
    abstract member readFloatLE (?offset: float) : float
    abstract member readInt16BE (?offset: float) : float
    abstract member readInt16LE (?offset: float) : float
    abstract member readInt32BE (?offset: float) : float
    abstract member readInt32LE (?offset: float) : float
    abstract member readInt8 (?offset: float) : float
    abstract member readIntBE (offset: float, byteLength: float) : float
    abstract member readIntLE (offset: float, byteLength: float) : float
    abstract member readUInt16BE (?offset: float) : float
    abstract member readUInt16LE (?offset: float) : float
    abstract member readUInt32BE (?offset: float) : float
    abstract member readUInt32LE (?offset: float) : float
    abstract member readUInt8 (?offset: float) : float
    abstract member readUIntBE (offset: float, byteLength: float) : float
    abstract member readUIntLE (offset: float, byteLength: float) : float
    abstract member readUint16BE (?offset: float) : float
    abstract member readUint16LE (?offset: float) : float
    abstract member readUint32BE (?offset: float) : float
    abstract member readUint32LE (?offset: float) : float
    abstract member readUint8 (?offset: float) : float
    abstract member readUintBE (offset: float, byteLength: float) : float
    abstract member readUintLE (offset: float, byteLength: float) : float
    abstract member reduce<'U> (callbackfn: Callbackfn3<'U,'TArrayBuffer>, initialValue: 'U) : 'U
    abstract member reduce (callbackfn: Callbackfn2<'TArrayBuffer>, initialValue: float) : float
    abstract member reduce (callbackfn: Callbackfn<'TArrayBuffer>) : float
    abstract member reduceRight<'U> (callbackfn: Callbackfn3<'U,'TArrayBuffer>, initialValue: 'U) : 'U
    abstract member reduceRight (callbackfn: Callbackfn2<'TArrayBuffer>, initialValue: float) : float
    abstract member reduceRight (callbackfn: Callbackfn<'TArrayBuffer>) : float
    abstract member reverse () : Buffer<'TArrayBuffer>
    abstract member slice (?start: float, ?end: float) : Buffer<ArrayBuffer>
    abstract member some (predicate: Predicate<'TArrayBuffer>, ?thisArg: obj) : bool
    abstract member sort (?compareFn: CompareFn) : Buffer<'TArrayBuffer>
    abstract member subarray (?start: float, ?end: float) : Buffer<'TArrayBuffer>
    abstract member swap16 () : Buffer<'TArrayBuffer>
    abstract member swap32 () : Buffer<'TArrayBuffer>
    abstract member swap64 () : Buffer<'TArrayBuffer>
    abstract member toJSON () : Result
    abstract member toString (?encoding: BufferEncoding, ?start: float, ?end: float) : string
    abstract member valueOf () : Buffer<'TArrayBuffer>
    abstract member write (string: string, offset: float, length: float, ?encoding: BufferEncoding) : float
    abstract member write (string: string, offset: float, ?encoding: BufferEncoding) : float
    abstract member write (string: string, ?encoding: BufferEncoding) : float
    abstract member writeBigInt64BE (value: bigint, ?offset: float) : float
    abstract member writeBigInt64LE (value: bigint, ?offset: float) : float
    abstract member writeBigUInt64BE (value: bigint, ?offset: float) : float
    abstract member writeBigUInt64LE (value: bigint, ?offset: float) : float
    abstract member writeBigUint64BE (value: bigint, ?offset: float) : float
    abstract member writeBigUint64LE (value: bigint, ?offset: float) : float
    abstract member writeDoubleBE (value: float, ?offset: float) : float
    abstract member writeDoubleLE (value: float, ?offset: float) : float
    abstract member writeFloatBE (value: float, ?offset: float) : float
    abstract member writeFloatLE (value: float, ?offset: float) : float
    abstract member writeInt16BE (value: float, ?offset: float) : float
    abstract member writeInt16LE (value: float, ?offset: float) : float
    abstract member writeInt32BE (value: float, ?offset: float) : float
    abstract member writeInt32LE (value: float, ?offset: float) : float
    abstract member writeInt8 (value: float, ?offset: float) : float
    abstract member writeIntBE (value: float, offset: float, byteLength: float) : float
    abstract member writeIntLE (value: float, offset: float, byteLength: float) : float
    abstract member writeUInt16BE (value: float, ?offset: float) : float
    abstract member writeUInt16LE (value: float, ?offset: float) : float
    abstract member writeUInt32BE (value: float, ?offset: float) : float
    abstract member writeUInt32LE (value: float, ?offset: float) : float
    abstract member writeUInt8 (value: float, ?offset: float) : float
    abstract member writeUIntBE (value: float, offset: float, byteLength: float) : float
    abstract member writeUIntLE (value: float, offset: float, byteLength: float) : float
    abstract member writeUint16BE (value: float, ?offset: float) : float
    abstract member writeUint16LE (value: float, ?offset: float) : float
    abstract member writeUint32BE (value: float, ?offset: float) : float
    abstract member writeUint32LE (value: float, ?offset: float) : float
    abstract member writeUint8 (value: float, ?offset: float) : float
    abstract member writeUintBE (value: float, offset: float, byteLength: float) : float
    abstract member writeUintLE (value: float, offset: float, byteLength: float) : float
AssemblyXantham.Fable.Node
ImplementsUint8Array<'TArrayBuffer>

node:buffer

Declared inside

BlobOptions
Constants
Every
ExportsThe package's value exports, each bound to its import
FileOptions
Filter
Find
FindIndex
ForEach
ImplicitArrayBuffer
Map
Reduce
ReduceRight
Some
Sort
ToJSON
TranscodeEncoding
WithImplicitCoercion
WithImplicitCoercion2

Methods

abstract member compare (target: Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>, ?targetStart: float, ?targetEnd: float, ?sourceStart: float, ?sourceEnd: float) : Direction

Compares buf with target and returns a number indicating whether bufcomes before, after, or is the same as target in sort order. Comparison is based on the actual sequence of bytes in each Buffer.

  • 0 is returned if target is the same as buf
  • 1 is returned if target should come beforebuf when sorted.
  • -1 is returned if target should come afterbuf when sorted.
import { Buffer } from 'node:buffer';

const buf1 = Buffer.from('ABC');
const buf2 = Buffer.from('BCD');
const buf3 = Buffer.from('ABCD');

console.log(buf1.compare(buf1));
// Prints: 0
console.log(buf1.compare(buf2));
// Prints: -1
console.log(buf1.compare(buf3));
// Prints: -1
console.log(buf2.compare(buf1));
// Prints: 1
console.log(buf2.compare(buf3));
// Prints: 1
console.log([buf1, buf2, buf3].sort(Buffer.compare));
// Prints: [ <Buffer 41 42 43>, <Buffer 41 42 43 44>, <Buffer 42 43 44> ]
// (This result is equal to: [buf1, buf3, buf2].)

The optional targetStart, targetEnd, sourceStart, and sourceEnd arguments can be used to limit the comparison to specific ranges within target and buf respectively.

import { Buffer } from 'node:buffer';

const buf1 = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]);
const buf2 = Buffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]);

console.log(buf1.compare(buf2, 5, 9, 0, 4));
// Prints: 0
console.log(buf1.compare(buf2, 0, 6, 4));
// Prints: -1
console.log(buf1.compare(buf2, 5, 6, 5));
// Prints: 1

ERR_OUT_OF_RANGE is thrown if targetStart < 0, sourceStart < 0, targetEnd > target.byteLength, or sourceEnd > source.byteLength.

@since v0.11.13

Parameter
targetA Buffer or {@link Uint8Array} with which to compare buf.
targetStartThe offset within target at which to begin comparison.
targetEndThe offset within target at which to end comparison (not inclusive).
sourceStartThe offset within buf at which to begin comparison.
sourceEndThe offset within buf at which to end comparison (not inclusive).
abstract member copy (target: Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>, ?targetStart: float, ?sourceStart: float, ?sourceEnd: float) : float

Copies data from a region of buf to a region in target, even if the targetmemory region overlaps with buf.

TypedArray.prototype.set() performs the same operation, and is available for all TypedArrays, including Node.js Buffers, although it takes different function arguments.

import { Buffer } from 'node:buffer';

// Create two `Buffer` instances.
const buf1 = Buffer.allocUnsafe(26);
const buf2 = Buffer.allocUnsafe(26).fill('!');

for (let i = 0; i < 26; i++) {
// 97 is the decimal ASCII value for 'a'.
buf1[i] = i + 97;
}

// Copy `buf1` bytes 16 through 19 into `buf2` starting at byte 8 of `buf2`.
buf1.copy(buf2, 8, 16, 20);
// This is equivalent to:
// buf2.set(buf1.subarray(16, 20), 8);

console.log(buf2.toString('ascii', 0, 25));
// Prints: !!!!!!!!qrst!!!!!!!!!!!!!
import { Buffer } from 'node:buffer';

// Create a `Buffer` and copy data from one region to an overlapping region
// within the same `Buffer`.

const buf = Buffer.allocUnsafe(26);

for (let i = 0; i < 26; i++) {
// 97 is the decimal ASCII value for 'a'.
buf[i] = i + 97;
}

buf.copy(buf, 0, 4, 10);

console.log(buf.toString());
// Prints: efghijghijklmnopqrstuvwxyz

@since v0.1.90

Parameter
targetA Buffer or {@link Uint8Array} to copy into.
targetStartThe offset within target at which to begin writing.
sourceStartThe offset within buf from which to begin copying.
sourceEndThe offset within buf at which to stop copying (not inclusive).

Returns. The number of bytes copied.

abstract member copyWithin (target: float, start: float, ?end: float) : Buffer<'TArrayBuffer>

Returns the this object after copying a section of the array identified by start and end to the same array starting at position target

Parameter
targetIf target is negative, it is treated as length+target where length is the length of the array.
startIf start is negative, it is treated as length+start. If end is negative, it is treated as length+end.
endIf not specified, length of the this object is used as its default value.
abstract member equals (otherBuffer: Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>) : bool

Returns true if both buf and otherBuffer have exactly the same bytes,false otherwise. Equivalent to buf.compare(otherBuffer) === 0.

import { Buffer } from 'node:buffer';

const buf1 = Buffer.from('ABC');
const buf2 = Buffer.from('414243', 'hex');
const buf3 = Buffer.from('ABCD');

console.log(buf1.equals(buf2));
// Prints: true
console.log(buf1.equals(buf3));
// Prints: false

@since v0.11.13

Parameter
otherBufferA Buffer or {@link Uint8Array} with which to compare buf.
abstract member every (predicate: Predicate<'TArrayBuffer>, ?thisArg: obj) : bool

Determines whether all the members of an array satisfy the specified test.

Parameter
predicateA function that accepts up to three arguments. The every method calls the predicate function for each element in the array until the predicate returns a value which is coercible to the Boolean value false, or until the end of the array.
thisArgAn object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.
abstract member fill (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, encoding: BufferEncoding) : Buffer<'TArrayBuffer>

Fills buf with the specified value. If the offset and end are not given, the entire buf will be filled:

import { Buffer } from 'node:buffer';

// Fill a `Buffer` with the ASCII character 'h'.

const b = Buffer.allocUnsafe(50).fill('h');

console.log(b.toString());
// Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

// Fill a buffer with empty string
const c = Buffer.allocUnsafe(5).fill('');

console.log(c.fill(''));
// Prints: <Buffer 00 00 00 00 00>

value is coerced to a uint32 value if it is not a string, Buffer, or integer. If the resulting integer is greater than 255 (decimal), buf will be filled with value &#x26; 255.

If the final write of a fill() operation falls on a multi-byte character, then only the bytes of that character that fit into buf are written:

import { Buffer } from 'node:buffer';

// Fill a `Buffer` with character that takes up two bytes in UTF-8.

console.log(Buffer.allocUnsafe(5).fill('\u0222'));
// Prints: <Buffer c8 a2 c8 a2 c8>

If value contains invalid characters, it is truncated; if no valid fill data remains, an exception is thrown:

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(5);

console.log(buf.fill('a'));
// Prints: <Buffer 61 61 61 61 61>
console.log(buf.fill('aazz', 'hex'));
// Prints: <Buffer aa aa aa aa aa>
console.log(buf.fill('zz', 'hex'));
// Throws an exception.

@since v0.5.0

Parameter
valueThe value with which to fill buf. Empty value (string, Uint8Array, Buffer) is coerced to 0.
offsetNumber of bytes to skip before starting to fill buf.
endWhere to stop filling buf (not inclusive).
encodingThe encoding for value if value is a string.

Returns. A reference to buf.

abstract member fill (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, offset: float, encoding: BufferEncoding) : Buffer<'TArrayBuffer>

Fills buf with the specified value. If the offset and end are not given, the entire buf will be filled:

import { Buffer } from 'node:buffer';

// Fill a `Buffer` with the ASCII character 'h'.

const b = Buffer.allocUnsafe(50).fill('h');

console.log(b.toString());
// Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

// Fill a buffer with empty string
const c = Buffer.allocUnsafe(5).fill('');

console.log(c.fill(''));
// Prints: <Buffer 00 00 00 00 00>

value is coerced to a uint32 value if it is not a string, Buffer, or integer. If the resulting integer is greater than 255 (decimal), buf will be filled with value &#x26; 255.

If the final write of a fill() operation falls on a multi-byte character, then only the bytes of that character that fit into buf are written:

import { Buffer } from 'node:buffer';

// Fill a `Buffer` with character that takes up two bytes in UTF-8.

console.log(Buffer.allocUnsafe(5).fill('\u0222'));
// Prints: <Buffer c8 a2 c8 a2 c8>

If value contains invalid characters, it is truncated; if no valid fill data remains, an exception is thrown:

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(5);

console.log(buf.fill('a'));
// Prints: <Buffer 61 61 61 61 61>
console.log(buf.fill('aazz', 'hex'));
// Prints: <Buffer aa aa aa aa aa>
console.log(buf.fill('zz', 'hex'));
// Throws an exception.

@since v0.5.0

Parameter
valueThe value with which to fill buf. Empty value (string, Uint8Array, Buffer) is coerced to 0.
offsetNumber of bytes to skip before starting to fill buf.
endWhere to stop filling buf (not inclusive).
encodingThe encoding for value if value is a string.

Returns. A reference to buf.

abstract member fill (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, ?offset: float, ?end: float, ?encoding: BufferEncoding) : Buffer<'TArrayBuffer>

Fills buf with the specified value. If the offset and end are not given, the entire buf will be filled:

import { Buffer } from 'node:buffer';

// Fill a `Buffer` with the ASCII character 'h'.

const b = Buffer.allocUnsafe(50).fill('h');

console.log(b.toString());
// Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

// Fill a buffer with empty string
const c = Buffer.allocUnsafe(5).fill('');

console.log(c.fill(''));
// Prints: <Buffer 00 00 00 00 00>

value is coerced to a uint32 value if it is not a string, Buffer, or integer. If the resulting integer is greater than 255 (decimal), buf will be filled with value &#x26; 255.

If the final write of a fill() operation falls on a multi-byte character, then only the bytes of that character that fit into buf are written:

import { Buffer } from 'node:buffer';

// Fill a `Buffer` with character that takes up two bytes in UTF-8.

console.log(Buffer.allocUnsafe(5).fill('\u0222'));
// Prints: <Buffer c8 a2 c8 a2 c8>

If value contains invalid characters, it is truncated; if no valid fill data remains, an exception is thrown:

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(5);

console.log(buf.fill('a'));
// Prints: <Buffer 61 61 61 61 61>
console.log(buf.fill('aazz', 'hex'));
// Prints: <Buffer aa aa aa aa aa>
console.log(buf.fill('zz', 'hex'));
// Throws an exception.

@since v0.5.0

Parameter
valueThe value with which to fill buf. Empty value (string, Uint8Array, Buffer) is coerced to 0.
offsetNumber of bytes to skip before starting to fill buf.
endWhere to stop filling buf (not inclusive).
encodingThe encoding for value if value is a string.

Returns. A reference to buf.

abstract member filter (predicate: Predicate<'TArrayBuffer>, ?thisArg: obj) : Uint8Array<ArrayBuffer>

Returns the elements of an array that meet the condition specified in a callback function.

Parameter
predicateA function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.
thisArgAn object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.
abstract member find (predicate: Predicate<'TArrayBuffer>, ?thisArg: obj) : float option

Returns the value of the first element in the array where predicate is true, and undefined otherwise.

Parameter
predicatefind calls predicate once for each element of the array, in ascending order, until it finds one where predicate returns true. If such an element is found, find immediately returns that element value. Otherwise, find returns undefined.
thisArgIf provided, it will be used as the this value for each invocation of predicate. If it is not provided, undefined is used instead.
abstract member findIndex (predicate: Predicate<'TArrayBuffer>, ?thisArg: obj) : float

Returns the index of the first element in the array where predicate is true, and -1 otherwise.

Parameter
predicatefind calls predicate once for each element of the array, in ascending order, until it finds one where predicate returns true. If such an element is found, findIndex immediately returns that element index. Otherwise, findIndex returns -1.
thisArgIf provided, it will be used as the this value for each invocation of predicate. If it is not provided, undefined is used instead.
abstract member forEach (callbackfn: Callbackfn<'TArrayBuffer>, ?thisArg: obj) : unit

Performs the specified action for each element in an array.

Parameter
callbackfnA function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.
thisArgAn object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
abstract member includes (value: U3<string,float,Buffer<U2<ArrayBuffer,SharedArrayBuffer>>>, encoding: BufferEncoding) : bool

Equivalent to buf.indexOf() !== -1.

import { Buffer } from 'node:buffer';

const buf = Buffer.from('this is a buffer');

console.log(buf.includes('this'));
// Prints: true
console.log(buf.includes('is'));
// Prints: true
console.log(buf.includes(Buffer.from('a buffer')));
// Prints: true
console.log(buf.includes(97));
// Prints: true (97 is the decimal ASCII value for 'a')
console.log(buf.includes(Buffer.from('a buffer example')));
// Prints: false
console.log(buf.includes(Buffer.from('a buffer example').slice(0, 8)));
// Prints: true
console.log(buf.includes('this', 4));
// Prints: false

@since v5.3.0

Parameter
valueWhat to search for.
byteOffsetWhere to begin searching in buf. If negative, then offset is calculated from the end of buf.
encodingIf value is a string, this is its encoding.

Returns. true if value was found in buf, false otherwise.

abstract member includes (value: U3<string,float,Buffer<U2<ArrayBuffer,SharedArrayBuffer>>>, ?byteOffset: float, ?encoding: BufferEncoding) : bool

Equivalent to buf.indexOf() !== -1.

import { Buffer } from 'node:buffer';

const buf = Buffer.from('this is a buffer');

console.log(buf.includes('this'));
// Prints: true
console.log(buf.includes('is'));
// Prints: true
console.log(buf.includes(Buffer.from('a buffer')));
// Prints: true
console.log(buf.includes(97));
// Prints: true (97 is the decimal ASCII value for 'a')
console.log(buf.includes(Buffer.from('a buffer example')));
// Prints: false
console.log(buf.includes(Buffer.from('a buffer example').slice(0, 8)));
// Prints: true
console.log(buf.includes('this', 4));
// Prints: false

@since v5.3.0

Parameter
valueWhat to search for.
byteOffsetWhere to begin searching in buf. If negative, then offset is calculated from the end of buf.
encodingIf value is a string, this is its encoding.

Returns. true if value was found in buf, false otherwise.

abstract member indexOf (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, encoding: BufferEncoding) : float

If value is:

  • a string, value is interpreted according to the character encoding in encoding.
  • a Buffer or Uint8Array, value will be used in its entirety. To compare a partial Buffer, use buf.subarray.
  • a number, value will be interpreted as an unsigned 8-bit integer value between 0 and 255.
import { Buffer } from 'node:buffer';

const buf = Buffer.from('this is a buffer');

console.log(buf.indexOf('this'));
// Prints: 0
console.log(buf.indexOf('is'));
// Prints: 2
console.log(buf.indexOf(Buffer.from('a buffer')));
// Prints: 8
console.log(buf.indexOf(97));
// Prints: 8 (97 is the decimal ASCII value for 'a')
console.log(buf.indexOf(Buffer.from('a buffer example')));
// Prints: -1
console.log(buf.indexOf(Buffer.from('a buffer example').slice(0, 8)));
// Prints: 8

const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le');

console.log(utf16Buffer.indexOf('\u03a3', 0, 'utf16le'));
// Prints: 4
console.log(utf16Buffer.indexOf('\u03a3', -4, 'utf16le'));
// Prints: 6

If value is not a string, number, or Buffer, this method will throw a TypeError. If value is a number, it will be coerced to a valid byte value, an integer between 0 and 255.

If byteOffset is not a number, it will be coerced to a number. If the result of coercion is NaN or 0, then the entire buffer will be searched. This behavior matches String.prototype.indexOf().

import { Buffer } from 'node:buffer';

const b = Buffer.from('abcdef');

// Passing a value that's a number, but not a valid byte.
// Prints: 2, equivalent to searching for 99 or 'c'.
console.log(b.indexOf(99.9));
console.log(b.indexOf(256 + 99));

// Passing a byteOffset that coerces to NaN or 0.
// Prints: 1, searching the whole buffer.
console.log(b.indexOf('b', undefined));
console.log(b.indexOf('b', {}));
console.log(b.indexOf('b', null));
console.log(b.indexOf('b', []));

If value is an empty string or empty Buffer and byteOffset is less than buf.length, byteOffset will be returned. If value is empty andbyteOffset is at least buf.length, buf.length will be returned.

@since v1.5.0

Parameter
valueWhat to search for.
byteOffsetWhere to begin searching in buf. If negative, then offset is calculated from the end of buf.
encodingIf value is a string, this is the encoding used to determine the binary representation of the string that will be searched for in buf.

Returns. The index of the first occurrence of value in buf, or -1 if buf does not contain value.

abstract member indexOf (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, ?byteOffset: float, ?encoding: BufferEncoding) : float

If value is:

  • a string, value is interpreted according to the character encoding in encoding.
  • a Buffer or Uint8Array, value will be used in its entirety. To compare a partial Buffer, use buf.subarray.
  • a number, value will be interpreted as an unsigned 8-bit integer value between 0 and 255.
import { Buffer } from 'node:buffer';

const buf = Buffer.from('this is a buffer');

console.log(buf.indexOf('this'));
// Prints: 0
console.log(buf.indexOf('is'));
// Prints: 2
console.log(buf.indexOf(Buffer.from('a buffer')));
// Prints: 8
console.log(buf.indexOf(97));
// Prints: 8 (97 is the decimal ASCII value for 'a')
console.log(buf.indexOf(Buffer.from('a buffer example')));
// Prints: -1
console.log(buf.indexOf(Buffer.from('a buffer example').slice(0, 8)));
// Prints: 8

const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le');

console.log(utf16Buffer.indexOf('\u03a3', 0, 'utf16le'));
// Prints: 4
console.log(utf16Buffer.indexOf('\u03a3', -4, 'utf16le'));
// Prints: 6

If value is not a string, number, or Buffer, this method will throw a TypeError. If value is a number, it will be coerced to a valid byte value, an integer between 0 and 255.

If byteOffset is not a number, it will be coerced to a number. If the result of coercion is NaN or 0, then the entire buffer will be searched. This behavior matches String.prototype.indexOf().

import { Buffer } from 'node:buffer';

const b = Buffer.from('abcdef');

// Passing a value that's a number, but not a valid byte.
// Prints: 2, equivalent to searching for 99 or 'c'.
console.log(b.indexOf(99.9));
console.log(b.indexOf(256 + 99));

// Passing a byteOffset that coerces to NaN or 0.
// Prints: 1, searching the whole buffer.
console.log(b.indexOf('b', undefined));
console.log(b.indexOf('b', {}));
console.log(b.indexOf('b', null));
console.log(b.indexOf('b', []));

If value is an empty string or empty Buffer and byteOffset is less than buf.length, byteOffset will be returned. If value is empty andbyteOffset is at least buf.length, buf.length will be returned.

@since v1.5.0

Parameter
valueWhat to search for.
byteOffsetWhere to begin searching in buf. If negative, then offset is calculated from the end of buf.
encodingIf value is a string, this is the encoding used to determine the binary representation of the string that will be searched for in buf.

Returns. The index of the first occurrence of value in buf, or -1 if buf does not contain value.

abstract member lastIndexOf (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, encoding: BufferEncoding) : float

Identical to buf.indexOf(), except the last occurrence of value is found rather than the first occurrence.

import { Buffer } from 'node:buffer';

const buf = Buffer.from('this buffer is a buffer');

console.log(buf.lastIndexOf('this'));
// Prints: 0
console.log(buf.lastIndexOf('buffer'));
// Prints: 17
console.log(buf.lastIndexOf(Buffer.from('buffer')));
// Prints: 17
console.log(buf.lastIndexOf(97));
// Prints: 15 (97 is the decimal ASCII value for 'a')
console.log(buf.lastIndexOf(Buffer.from('yolo')));
// Prints: -1
console.log(buf.lastIndexOf('buffer', 5));
// Prints: 5
console.log(buf.lastIndexOf('buffer', 4));
// Prints: -1

const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le');

console.log(utf16Buffer.lastIndexOf('\u03a3', undefined, 'utf16le'));
// Prints: 6
console.log(utf16Buffer.lastIndexOf('\u03a3', -5, 'utf16le'));
// Prints: 4

If value is not a string, number, or Buffer, this method will throw a TypeError. If value is a number, it will be coerced to a valid byte value, an integer between 0 and 255.

If byteOffset is not a number, it will be coerced to a number. Any arguments that coerce to NaN, like {} or undefined, will search the whole buffer. This behavior matches String.prototype.lastIndexOf().

import { Buffer } from 'node:buffer';

const b = Buffer.from('abcdef');

// Passing a value that's a number, but not a valid byte.
// Prints: 2, equivalent to searching for 99 or 'c'.
console.log(b.lastIndexOf(99.9));
console.log(b.lastIndexOf(256 + 99));

// Passing a byteOffset that coerces to NaN.
// Prints: 1, searching the whole buffer.
console.log(b.lastIndexOf('b', undefined));
console.log(b.lastIndexOf('b', {}));

// Passing a byteOffset that coerces to 0.
// Prints: -1, equivalent to passing 0.
console.log(b.lastIndexOf('b', null));
console.log(b.lastIndexOf('b', []));

If value is an empty string or empty Buffer, byteOffset will be returned.

@since v6.0.0

Parameter
valueWhat to search for.
byteOffsetWhere to begin searching in buf. If negative, then offset is calculated from the end of buf.
encodingIf value is a string, this is the encoding used to determine the binary representation of the string that will be searched for in buf.

Returns. The index of the last occurrence of value in buf, or -1 if buf does not contain value.

abstract member lastIndexOf (value: U3<string,float,Uint8Array<U2<ArrayBuffer,SharedArrayBuffer>>>, ?byteOffset: float, ?encoding: BufferEncoding) : float

Identical to buf.indexOf(), except the last occurrence of value is found rather than the first occurrence.

import { Buffer } from 'node:buffer';

const buf = Buffer.from('this buffer is a buffer');

console.log(buf.lastIndexOf('this'));
// Prints: 0
console.log(buf.lastIndexOf('buffer'));
// Prints: 17
console.log(buf.lastIndexOf(Buffer.from('buffer')));
// Prints: 17
console.log(buf.lastIndexOf(97));
// Prints: 15 (97 is the decimal ASCII value for 'a')
console.log(buf.lastIndexOf(Buffer.from('yolo')));
// Prints: -1
console.log(buf.lastIndexOf('buffer', 5));
// Prints: 5
console.log(buf.lastIndexOf('buffer', 4));
// Prints: -1

const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le');

console.log(utf16Buffer.lastIndexOf('\u03a3', undefined, 'utf16le'));
// Prints: 6
console.log(utf16Buffer.lastIndexOf('\u03a3', -5, 'utf16le'));
// Prints: 4

If value is not a string, number, or Buffer, this method will throw a TypeError. If value is a number, it will be coerced to a valid byte value, an integer between 0 and 255.

If byteOffset is not a number, it will be coerced to a number. Any arguments that coerce to NaN, like {} or undefined, will search the whole buffer. This behavior matches String.prototype.lastIndexOf().

import { Buffer } from 'node:buffer';

const b = Buffer.from('abcdef');

// Passing a value that's a number, but not a valid byte.
// Prints: 2, equivalent to searching for 99 or 'c'.
console.log(b.lastIndexOf(99.9));
console.log(b.lastIndexOf(256 + 99));

// Passing a byteOffset that coerces to NaN.
// Prints: 1, searching the whole buffer.
console.log(b.lastIndexOf('b', undefined));
console.log(b.lastIndexOf('b', {}));

// Passing a byteOffset that coerces to 0.
// Prints: -1, equivalent to passing 0.
console.log(b.lastIndexOf('b', null));
console.log(b.lastIndexOf('b', []));

If value is an empty string or empty Buffer, byteOffset will be returned.

@since v6.0.0

Parameter
valueWhat to search for.
byteOffsetWhere to begin searching in buf. If negative, then offset is calculated from the end of buf.
encodingIf value is a string, this is the encoding used to determine the binary representation of the string that will be searched for in buf.

Returns. The index of the last occurrence of value in buf, or -1 if buf does not contain value.

abstract member map (callbackfn: Callbackfn<'TArrayBuffer>, ?thisArg: obj) : Uint8Array<ArrayBuffer>

Calls a defined callback function on each element of an array, and returns an array that contains the results.

Parameter
callbackfnA function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.
thisArgAn object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.
abstract member readBigInt64BE (?offset: float) : bigint

Reads a signed, big-endian 64-bit integer from buf at the specified offset.

Integers read from a Buffer are interpreted as two's complement signed values.

@since v12.0.0, v10.20.0

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy: 0 <= offset <= buf.length - 8.
abstract member readBigInt64LE (?offset: float) : bigint

Reads a signed, little-endian 64-bit integer from buf at the specifiedoffset.

Integers read from a Buffer are interpreted as two's complement signed values.

@since v12.0.0, v10.20.0

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy: 0 <= offset <= buf.length - 8.
abstract member readBigUInt64BE (?offset: float) : bigint

Reads an unsigned, big-endian 64-bit integer from buf at the specifiedoffset.

This function is also available under the readBigUint64BE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]);

console.log(buf.readBigUInt64BE(0));
// Prints: 4294967295n

@since v12.0.0, v10.20.0

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy: 0 <= offset <= buf.length - 8.
abstract member readBigUInt64LE (?offset: float) : bigint

Reads an unsigned, little-endian 64-bit integer from buf at the specifiedoffset.

This function is also available under the readBigUint64LE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]);

console.log(buf.readBigUInt64LE(0));
// Prints: 18446744069414584320n

@since v12.0.0, v10.20.0

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy: 0 <= offset <= buf.length - 8.
abstract member readBigUint64BE (?offset: float) : bigint

@alias Buffer.readBigUInt64BE

abstract member readBigUint64LE (?offset: float) : bigint

@alias Buffer.readBigUInt64LE

abstract member readDoubleBE (?offset: float) : float

Reads a 64-bit, big-endian double from buf at the specified offset.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);

console.log(buf.readDoubleBE(0));
// Prints: 8.20788039913184e-304

@since v0.11.15

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 8.
abstract member readDoubleLE (?offset: float) : float

Reads a 64-bit, little-endian double from buf at the specified offset.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);

console.log(buf.readDoubleLE(0));
// Prints: 5.447603722011605e-270
console.log(buf.readDoubleLE(1));
// Throws ERR_OUT_OF_RANGE.

@since v0.11.15

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 8.
abstract member readFloatBE (?offset: float) : float

Reads a 32-bit, big-endian float from buf at the specified offset.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([1, 2, 3, 4]);

console.log(buf.readFloatBE(0));
// Prints: 2.387939260590663e-38

@since v0.11.15

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 4.
abstract member readFloatLE (?offset: float) : float

Reads a 32-bit, little-endian float from buf at the specified offset.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([1, 2, 3, 4]);

console.log(buf.readFloatLE(0));
// Prints: 1.539989614439558e-36
console.log(buf.readFloatLE(1));
// Throws ERR_OUT_OF_RANGE.

@since v0.11.15

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 4.
abstract member readInt16BE (?offset: float) : float

Reads a signed, big-endian 16-bit integer from buf at the specified offset.

Integers read from a Buffer are interpreted as two's complement signed values.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0, 5]);

console.log(buf.readInt16BE(0));
// Prints: 5

@since v0.5.5

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 2.
abstract member readInt16LE (?offset: float) : float

Reads a signed, little-endian 16-bit integer from buf at the specifiedoffset.

Integers read from a Buffer are interpreted as two's complement signed values.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0, 5]);

console.log(buf.readInt16LE(0));
// Prints: 1280
console.log(buf.readInt16LE(1));
// Throws ERR_OUT_OF_RANGE.

@since v0.5.5

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 2.
abstract member readInt32BE (?offset: float) : float

Reads a signed, big-endian 32-bit integer from buf at the specified offset.

Integers read from a Buffer are interpreted as two's complement signed values.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0, 0, 0, 5]);

console.log(buf.readInt32BE(0));
// Prints: 5

@since v0.5.5

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 4.
abstract member readInt32LE (?offset: float) : float

Reads a signed, little-endian 32-bit integer from buf at the specifiedoffset.

Integers read from a Buffer are interpreted as two's complement signed values.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0, 0, 0, 5]);

console.log(buf.readInt32LE(0));
// Prints: 83886080
console.log(buf.readInt32LE(1));
// Throws ERR_OUT_OF_RANGE.

@since v0.5.5

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 4.
abstract member readInt8 (?offset: float) : float

Reads a signed 8-bit integer from buf at the specified offset.

Integers read from a Buffer are interpreted as two's complement signed values.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([-1, 5]);

console.log(buf.readInt8(0));
// Prints: -1
console.log(buf.readInt8(1));
// Prints: 5
console.log(buf.readInt8(2));
// Throws ERR_OUT_OF_RANGE.

@since v0.5.0

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 1.
abstract member readIntBE (offset: float, byteLength: float) : float

Reads byteLength number of bytes from buf at the specified offset and interprets the result as a big-endian, two's complement signed value supporting up to 48 bits of accuracy.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);

console.log(buf.readIntBE(0, 6).toString(16));
// Prints: 1234567890ab
console.log(buf.readIntBE(1, 6).toString(16));
// Throws ERR_OUT_OF_RANGE.
console.log(buf.readIntBE(1, 0).toString(16));
// Throws ERR_OUT_OF_RANGE.

@since v0.11.15

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - byteLength.
byteLengthNumber of bytes to read. Must satisfy 0 < byteLength <= 6.
abstract member readIntLE (offset: float, byteLength: float) : float

Reads byteLength number of bytes from buf at the specified offset and interprets the result as a little-endian, two's complement signed value supporting up to 48 bits of accuracy.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);

console.log(buf.readIntLE(0, 6).toString(16));
// Prints: -546f87a9cbee

@since v0.11.15

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - byteLength.
byteLengthNumber of bytes to read. Must satisfy 0 < byteLength <= 6.
abstract member readUInt16BE (?offset: float) : float

Reads an unsigned, big-endian 16-bit integer from buf at the specifiedoffset.

This function is also available under the readUint16BE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0x12, 0x34, 0x56]);

console.log(buf.readUInt16BE(0).toString(16));
// Prints: 1234
console.log(buf.readUInt16BE(1).toString(16));
// Prints: 3456

@since v0.5.5

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 2.
abstract member readUInt16LE (?offset: float) : float

Reads an unsigned, little-endian 16-bit integer from buf at the specified offset.

This function is also available under the readUint16LE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0x12, 0x34, 0x56]);

console.log(buf.readUInt16LE(0).toString(16));
// Prints: 3412
console.log(buf.readUInt16LE(1).toString(16));
// Prints: 5634
console.log(buf.readUInt16LE(2).toString(16));
// Throws ERR_OUT_OF_RANGE.

@since v0.5.5

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 2.
abstract member readUInt32BE (?offset: float) : float

Reads an unsigned, big-endian 32-bit integer from buf at the specifiedoffset.

This function is also available under the readUint32BE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]);

console.log(buf.readUInt32BE(0).toString(16));
// Prints: 12345678

@since v0.5.5

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 4.
abstract member readUInt32LE (?offset: float) : float

Reads an unsigned, little-endian 32-bit integer from buf at the specifiedoffset.

This function is also available under the readUint32LE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]);

console.log(buf.readUInt32LE(0).toString(16));
// Prints: 78563412
console.log(buf.readUInt32LE(1).toString(16));
// Throws ERR_OUT_OF_RANGE.

@since v0.5.5

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 4.
abstract member readUInt8 (?offset: float) : float

Reads an unsigned 8-bit integer from buf at the specified offset.

This function is also available under the readUint8 alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([1, -2]);

console.log(buf.readUInt8(0));
// Prints: 1
console.log(buf.readUInt8(1));
// Prints: 254
console.log(buf.readUInt8(2));
// Throws ERR_OUT_OF_RANGE.

@since v0.5.0

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - 1.
abstract member readUIntBE (offset: float, byteLength: float) : float

Reads byteLength number of bytes from buf at the specified offset and interprets the result as an unsigned big-endian integer supporting up to 48 bits of accuracy.

This function is also available under the readUintBE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);

console.log(buf.readUIntBE(0, 6).toString(16));
// Prints: 1234567890ab
console.log(buf.readUIntBE(1, 6).toString(16));
// Throws ERR_OUT_OF_RANGE.

@since v0.11.15

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - byteLength.
byteLengthNumber of bytes to read. Must satisfy 0 < byteLength <= 6.
abstract member readUIntLE (offset: float, byteLength: float) : float

Reads byteLength number of bytes from buf at the specified offset and interprets the result as an unsigned, little-endian integer supporting up to 48 bits of accuracy.

This function is also available under the readUintLE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);

console.log(buf.readUIntLE(0, 6).toString(16));
// Prints: ab9078563412

@since v0.11.15

Parameter
offsetNumber of bytes to skip before starting to read. Must satisfy 0 <= offset <= buf.length - byteLength.
byteLengthNumber of bytes to read. Must satisfy 0 < byteLength <= 6.
abstract member readUint16BE (?offset: float) : float

@alias Buffer.readUInt16BE

abstract member readUint16LE (?offset: float) : float

@alias Buffer.readUInt16LE

abstract member readUint32BE (?offset: float) : float

@alias Buffer.readUInt32BE

abstract member readUint32LE (?offset: float) : float

@alias Buffer.readUInt32LE

abstract member readUint8 (?offset: float) : float

@alias Buffer.readUInt8

abstract member readUintBE (offset: float, byteLength: float) : float

@alias Buffer.readUIntBE

abstract member readUintLE (offset: float, byteLength: float) : float

@alias Buffer.readUIntLE

abstract member reduce<'U> (callbackfn: Callbackfn3<'U,'TArrayBuffer>, initialValue: 'U) : 'U

Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

Parameter
callbackfnA function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
callbackfnA function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
abstract member reduce (callbackfn: Callbackfn2<'TArrayBuffer>, initialValue: float) : float

Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

Parameter
callbackfnA function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
callbackfnA function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
abstract member reduce (callbackfn: Callbackfn<'TArrayBuffer>) : float

Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

Parameter
callbackfnA function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
callbackfnA function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
abstract member reduceRight<'U> (callbackfn: Callbackfn3<'U,'TArrayBuffer>, initialValue: 'U) : 'U

Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

Parameter
callbackfnA function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
callbackfnA function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
abstract member reduceRight (callbackfn: Callbackfn2<'TArrayBuffer>, initialValue: float) : float

Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

Parameter
callbackfnA function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
callbackfnA function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
abstract member reduceRight (callbackfn: Callbackfn<'TArrayBuffer>) : float

Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

Parameter
callbackfnA function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
callbackfnA function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.
initialValueIf initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.
abstract member reverse () : Buffer<'TArrayBuffer>
abstract member slice (?start: float, ?end: float) : Buffer<ArrayBuffer>

Returns a new Buffer that references the same memory as the original, but offset and cropped by the start and end indices.

This method is not compatible with the Uint8Array.prototype.slice(), which is a superclass of Buffer. To copy the slice, useUint8Array.prototype.slice().

import { Buffer } from 'node:buffer';

const buf = Buffer.from('buffer');

const copiedBuf = Uint8Array.prototype.slice.call(buf);
copiedBuf[0]++;
console.log(copiedBuf.toString());
// Prints: cuffer

console.log(buf.toString());
// Prints: buffer

// With buf.slice(), the original buffer is modified.
const notReallyCopiedBuf = buf.slice();
notReallyCopiedBuf[0]++;
console.log(notReallyCopiedBuf.toString());
// Prints: cuffer
console.log(buf.toString());
// Also prints: cuffer (!)

@since v0.3.0

Parameter
startWhere the new Buffer will start.
endWhere the new Buffer will end (not inclusive).
abstract member some (predicate: Predicate<'TArrayBuffer>, ?thisArg: obj) : bool

Determines whether the specified callback function returns true for any element of an array.

Parameter
predicateA function that accepts up to three arguments. The some method calls the predicate function for each element in the array until the predicate returns a value which is coercible to the Boolean value true, or until the end of the array.
thisArgAn object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.
abstract member sort (?compareFn: CompareFn) : Buffer<'TArrayBuffer>

Sorts an array.

Parameter
compareFnFunction used to determine the order of the elements. It is expected to return a negative value if first argument is less than second argument, zero if they're equal and a positive value otherwise. If omitted, the elements are sorted in ascending order. ts [11,2,22,1].sort((a, b) => a - b)
abstract member subarray (?start: float, ?end: float) : Buffer<'TArrayBuffer>

Returns a new Buffer that references the same memory as the original, but offset and cropped by the start and end indices.

Specifying end greater than buf.length will return the same result as that of end equal to buf.length.

This method is inherited from TypedArray.prototype.subarray().

Modifying the new Buffer slice will modify the memory in the original Bufferbecause the allocated memory of the two objects overlap.

import { Buffer } from 'node:buffer';

// Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte
// from the original `Buffer`.

const buf1 = Buffer.allocUnsafe(26);

for (let i = 0; i < 26; i++) {
// 97 is the decimal ASCII value for 'a'.
buf1[i] = i + 97;
}

const buf2 = buf1.subarray(0, 3);

console.log(buf2.toString('ascii', 0, buf2.length));
// Prints: abc

buf1[0] = 33;

console.log(buf2.toString('ascii', 0, buf2.length));
// Prints: !bc

Specifying negative indexes causes the slice to be generated relative to the end of buf rather than the beginning.

import { Buffer } from 'node:buffer';

const buf = Buffer.from('buffer');

console.log(buf.subarray(-6, -1).toString());
// Prints: buffe
// (Equivalent to buf.subarray(0, 5).)

console.log(buf.subarray(-6, -2).toString());
// Prints: buff
// (Equivalent to buf.subarray(0, 4).)

console.log(buf.subarray(-5, -2).toString());
// Prints: uff
// (Equivalent to buf.subarray(1, 4).)

@since v3.0.0

Parameter
startWhere the new Buffer will start.
endWhere the new Buffer will end (not inclusive).
abstract member swap16 () : Buffer<'TArrayBuffer>

Interprets buf as an array of unsigned 16-bit integers and swaps the byte order in-place. Throws ERR_INVALID_BUFFER_SIZE if buf.length is not a multiple of 2.

import { Buffer } from 'node:buffer';

const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);

console.log(buf1);
// Prints: <Buffer 01 02 03 04 05 06 07 08>

buf1.swap16();

console.log(buf1);
// Prints: <Buffer 02 01 04 03 06 05 08 07>

const buf2 = Buffer.from([0x1, 0x2, 0x3]);

buf2.swap16();
// Throws ERR_INVALID_BUFFER_SIZE.

One convenient use of buf.swap16() is to perform a fast in-place conversion between UTF-16 little-endian and UTF-16 big-endian:

import { Buffer } from 'node:buffer';

const buf = Buffer.from('This is little-endian UTF-16', 'utf16le');
buf.swap16(); // Convert to big-endian UTF-16 text.

@since v5.10.0

Returns. A reference to buf.

abstract member swap32 () : Buffer<'TArrayBuffer>

Interprets buf as an array of unsigned 32-bit integers and swaps the byte order in-place. Throws ERR_INVALID_BUFFER_SIZE if buf.length is not a multiple of 4.

import { Buffer } from 'node:buffer';

const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);

console.log(buf1);
// Prints: <Buffer 01 02 03 04 05 06 07 08>

buf1.swap32();

console.log(buf1);
// Prints: <Buffer 04 03 02 01 08 07 06 05>

const buf2 = Buffer.from([0x1, 0x2, 0x3]);

buf2.swap32();
// Throws ERR_INVALID_BUFFER_SIZE.

@since v5.10.0

Returns. A reference to buf.

abstract member swap64 () : Buffer<'TArrayBuffer>

Interprets buf as an array of 64-bit numbers and swaps byte order in-place. Throws ERR_INVALID_BUFFER_SIZE if buf.length is not a multiple of 8.

import { Buffer } from 'node:buffer';

const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);

console.log(buf1);
// Prints: <Buffer 01 02 03 04 05 06 07 08>

buf1.swap64();

console.log(buf1);
// Prints: <Buffer 08 07 06 05 04 03 02 01>

const buf2 = Buffer.from([0x1, 0x2, 0x3]);

buf2.swap64();
// Throws ERR_INVALID_BUFFER_SIZE.

@since v6.3.0

Returns. A reference to buf.

abstract member toJSON () : Result

Returns a JSON representation of buf. JSON.stringify() implicitly calls this function when stringifying a Buffer instance.

Buffer.from() accepts objects in the format returned from this method. In particular, Buffer.from(buf.toJSON()) works like Buffer.from(buf).

import { Buffer } from 'node:buffer';

const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
const json = JSON.stringify(buf);

console.log(json);
// Prints: {"type":"Buffer","data":[1,2,3,4,5]}

const copy = JSON.parse(json, (key, value) => {
return value &#x26;&#x26; value.type === 'Buffer' ?
Buffer.from(value) :
value;
});

console.log(copy);
// Prints: <Buffer 01 02 03 04 05>

@since v0.9.2

abstract member toString (?encoding: BufferEncoding, ?start: float, ?end: float) : string

Decodes buf to a string according to the specified character encoding inencoding. start and end may be passed to decode only a subset of buf.

If encoding is 'utf8' and a byte sequence in the input is not valid UTF-8, then each invalid byte is replaced with the replacement character U+FFFD.

The maximum length of a string instance (in UTF-16 code units) is available as constants.MAX_STRING_LENGTH.

import { Buffer } from 'node:buffer';

const buf1 = Buffer.allocUnsafe(26);

for (let i = 0; i < 26; i++) {
// 97 is the decimal ASCII value for 'a'.
buf1[i] = i + 97;
}

console.log(buf1.toString('utf8'));
// Prints: abcdefghijklmnopqrstuvwxyz
console.log(buf1.toString('utf8', 0, 5));
// Prints: abcde

const buf2 = Buffer.from('tรฉst');

console.log(buf2.toString('hex'));
// Prints: 74c3a97374
console.log(buf2.toString('utf8', 0, 3));
// Prints: tรฉ
console.log(buf2.toString(undefined, 0, 3));
// Prints: tรฉ

@since v0.1.90

Parameter
encodingThe character encoding to use.
startThe byte offset to start decoding at.
endThe byte offset to stop decoding at (not inclusive).
abstract member valueOf () : Buffer<'TArrayBuffer>

Returns the primitive value of the specified object.

abstract member write (string: string, offset: float, length: float, ?encoding: BufferEncoding) : float

Writes string to buf at offset according to the character encoding inencoding. The length parameter is the number of bytes to write. If buf did not contain enough space to fit the entire string, only part of string will be written. However, partially encoded characters will not be written.

import { Buffer } from 'node:buffer';

const buf = Buffer.alloc(256);

const len = buf.write('\u00bd + \u00bc = \u00be', 0);

console.log(`${len} bytes: ${buf.toString('utf8', 0, len)}`);
// Prints: 12 bytes: ยฝ + ยผ = ยพ

const buffer = Buffer.alloc(10);

const length = buffer.write('abcd', 8);

console.log(`${length} bytes: ${buffer.toString('utf8', 8, 10)}`);
// Prints: 2 bytes : ab

@since v0.1.90

Parameter
stringString to write to buf.
offsetNumber of bytes to skip before starting to write string.
lengthMaximum number of bytes to write (written bytes will not exceed buf.length - offset).
encodingThe character encoding of string.

Returns. Number of bytes written.

abstract member write (string: string, offset: float, ?encoding: BufferEncoding) : float

Writes string to buf at offset according to the character encoding inencoding. The length parameter is the number of bytes to write. If buf did not contain enough space to fit the entire string, only part of string will be written. However, partially encoded characters will not be written.

import { Buffer } from 'node:buffer';

const buf = Buffer.alloc(256);

const len = buf.write('\u00bd + \u00bc = \u00be', 0);

console.log(`${len} bytes: ${buf.toString('utf8', 0, len)}`);
// Prints: 12 bytes: ยฝ + ยผ = ยพ

const buffer = Buffer.alloc(10);

const length = buffer.write('abcd', 8);

console.log(`${length} bytes: ${buffer.toString('utf8', 8, 10)}`);
// Prints: 2 bytes : ab

@since v0.1.90

Parameter
stringString to write to buf.
offsetNumber of bytes to skip before starting to write string.
lengthMaximum number of bytes to write (written bytes will not exceed buf.length - offset).
encodingThe character encoding of string.

Returns. Number of bytes written.

abstract member write (string: string, ?encoding: BufferEncoding) : float

Writes string to buf at offset according to the character encoding inencoding. The length parameter is the number of bytes to write. If buf did not contain enough space to fit the entire string, only part of string will be written. However, partially encoded characters will not be written.

import { Buffer } from 'node:buffer';

const buf = Buffer.alloc(256);

const len = buf.write('\u00bd + \u00bc = \u00be', 0);

console.log(`${len} bytes: ${buf.toString('utf8', 0, len)}`);
// Prints: 12 bytes: ยฝ + ยผ = ยพ

const buffer = Buffer.alloc(10);

const length = buffer.write('abcd', 8);

console.log(`${length} bytes: ${buffer.toString('utf8', 8, 10)}`);
// Prints: 2 bytes : ab

@since v0.1.90

Parameter
stringString to write to buf.
offsetNumber of bytes to skip before starting to write string.
lengthMaximum number of bytes to write (written bytes will not exceed buf.length - offset).
encodingThe character encoding of string.

Returns. Number of bytes written.

abstract member writeBigInt64BE (value: bigint, ?offset: float) : float

Writes value to buf at the specified offset as big-endian.

value is interpreted and written as a two's complement signed integer.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(8);

buf.writeBigInt64BE(0x0102030405060708n, 0);

console.log(buf);
// Prints: <Buffer 01 02 03 04 05 06 07 08>

@since v12.0.0, v10.20.0

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy: 0 <= offset <= buf.length - 8.

Returns. offset plus the number of bytes written.

abstract member writeBigInt64LE (value: bigint, ?offset: float) : float

Writes value to buf at the specified offset as little-endian.

value is interpreted and written as a two's complement signed integer.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(8);

buf.writeBigInt64LE(0x0102030405060708n, 0);

console.log(buf);
// Prints: <Buffer 08 07 06 05 04 03 02 01>

@since v12.0.0, v10.20.0

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy: 0 <= offset <= buf.length - 8.

Returns. offset plus the number of bytes written.

abstract member writeBigUInt64BE (value: bigint, ?offset: float) : float

Writes value to buf at the specified offset as big-endian.

This function is also available under the writeBigUint64BE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(8);

buf.writeBigUInt64BE(0xdecafafecacefaden, 0);

console.log(buf);
// Prints: <Buffer de ca fa fe ca ce fa de>

@since v12.0.0, v10.20.0

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy: 0 <= offset <= buf.length - 8.

Returns. offset plus the number of bytes written.

abstract member writeBigUInt64LE (value: bigint, ?offset: float) : float

Writes value to buf at the specified offset as little-endian

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(8);

buf.writeBigUInt64LE(0xdecafafecacefaden, 0);

console.log(buf);
// Prints: <Buffer de fa ce ca fe fa ca de>

This function is also available under the writeBigUint64LE alias.

@since v12.0.0, v10.20.0

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy: 0 <= offset <= buf.length - 8.

Returns. offset plus the number of bytes written.

abstract member writeBigUint64BE (value: bigint, ?offset: float) : float

@alias Buffer.writeBigUInt64BE

abstract member writeBigUint64LE (value: bigint, ?offset: float) : float

@alias Buffer.writeBigUInt64LE

abstract member writeDoubleBE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as big-endian. The value must be a JavaScript number. Behavior is undefined when value is anything other than a JavaScript number.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(8);

buf.writeDoubleBE(123.456, 0);

console.log(buf);
// Prints: <Buffer 40 5e dd 2f 1a 9f be 77>

@since v0.11.15

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 8.

Returns. offset plus the number of bytes written.

abstract member writeDoubleLE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as little-endian. The value must be a JavaScript number. Behavior is undefined when value is anything other than a JavaScript number.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(8);

buf.writeDoubleLE(123.456, 0);

console.log(buf);
// Prints: <Buffer 77 be 9f 1a 2f dd 5e 40>

@since v0.11.15

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 8.

Returns. offset plus the number of bytes written.

abstract member writeFloatBE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as big-endian. Behavior is undefined when value is anything other than a JavaScript number.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(4);

buf.writeFloatBE(0xcafebabe, 0);

console.log(buf);
// Prints: <Buffer 4f 4a fe bb>

@since v0.11.15

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 4.

Returns. offset plus the number of bytes written.

abstract member writeFloatLE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as little-endian. Behavior is undefined when value is anything other than a JavaScript number.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(4);

buf.writeFloatLE(0xcafebabe, 0);

console.log(buf);
// Prints: <Buffer bb fe 4a 4f>

@since v0.11.15

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 4.

Returns. offset plus the number of bytes written.

abstract member writeInt16BE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as big-endian. The value must be a valid signed 16-bit integer. Behavior is undefined when value is anything other than a signed 16-bit integer.

The value is interpreted and written as a two's complement signed integer.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(2);

buf.writeInt16BE(0x0102, 0);

console.log(buf);
// Prints: <Buffer 01 02>

@since v0.5.5

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 2.

Returns. offset plus the number of bytes written.

abstract member writeInt16LE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as little-endian. The value must be a valid signed 16-bit integer. Behavior is undefined when value is anything other than a signed 16-bit integer.

The value is interpreted and written as a two's complement signed integer.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(2);

buf.writeInt16LE(0x0304, 0);

console.log(buf);
// Prints: <Buffer 04 03>

@since v0.5.5

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 2.

Returns. offset plus the number of bytes written.

abstract member writeInt32BE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as big-endian. The value must be a valid signed 32-bit integer. Behavior is undefined when value is anything other than a signed 32-bit integer.

The value is interpreted and written as a two's complement signed integer.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(4);

buf.writeInt32BE(0x01020304, 0);

console.log(buf);
// Prints: <Buffer 01 02 03 04>

@since v0.5.5

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 4.

Returns. offset plus the number of bytes written.

abstract member writeInt32LE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as little-endian. The value must be a valid signed 32-bit integer. Behavior is undefined when value is anything other than a signed 32-bit integer.

The value is interpreted and written as a two's complement signed integer.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(4);

buf.writeInt32LE(0x05060708, 0);

console.log(buf);
// Prints: <Buffer 08 07 06 05>

@since v0.5.5

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 4.

Returns. offset plus the number of bytes written.

abstract member writeInt8 (value: float, ?offset: float) : float

Writes value to buf at the specified offset. value must be a valid signed 8-bit integer. Behavior is undefined when value is anything other than a signed 8-bit integer.

value is interpreted and written as a two's complement signed integer.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(2);

buf.writeInt8(2, 0);
buf.writeInt8(-2, 1);

console.log(buf);
// Prints: <Buffer 02 fe>

@since v0.5.0

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 1.

Returns. offset plus the number of bytes written.

abstract member writeIntBE (value: float, offset: float, byteLength: float) : float

Writes byteLength bytes of value to buf at the specified offsetas big-endian. Supports up to 48 bits of accuracy. Behavior is undefined whenvalue is anything other than a signed integer.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(6);

buf.writeIntBE(0x1234567890ab, 0, 6);

console.log(buf);
// Prints: <Buffer 12 34 56 78 90 ab>

@since v0.11.15

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - byteLength.
byteLengthNumber of bytes to write. Must satisfy 0 < byteLength <= 6.

Returns. offset plus the number of bytes written.

abstract member writeIntLE (value: float, offset: float, byteLength: float) : float

Writes byteLength bytes of value to buf at the specified offsetas little-endian. Supports up to 48 bits of accuracy. Behavior is undefined when value is anything other than a signed integer.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(6);

buf.writeIntLE(0x1234567890ab, 0, 6);

console.log(buf);
// Prints: <Buffer ab 90 78 56 34 12>

@since v0.11.15

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - byteLength.
byteLengthNumber of bytes to write. Must satisfy 0 < byteLength <= 6.

Returns. offset plus the number of bytes written.

abstract member writeUInt16BE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as big-endian. The value must be a valid unsigned 16-bit integer. Behavior is undefined when valueis anything other than an unsigned 16-bit integer.

This function is also available under the writeUint16BE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(4);

buf.writeUInt16BE(0xdead, 0);
buf.writeUInt16BE(0xbeef, 2);

console.log(buf);
// Prints: <Buffer de ad be ef>

@since v0.5.5

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 2.

Returns. offset plus the number of bytes written.

abstract member writeUInt16LE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as little-endian. The value must be a valid unsigned 16-bit integer. Behavior is undefined when value is anything other than an unsigned 16-bit integer.

This function is also available under the writeUint16LE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(4);

buf.writeUInt16LE(0xdead, 0);
buf.writeUInt16LE(0xbeef, 2);

console.log(buf);
// Prints: <Buffer ad de ef be>

@since v0.5.5

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 2.

Returns. offset plus the number of bytes written.

abstract member writeUInt32BE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as big-endian. The value must be a valid unsigned 32-bit integer. Behavior is undefined when valueis anything other than an unsigned 32-bit integer.

This function is also available under the writeUint32BE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(4);

buf.writeUInt32BE(0xfeedface, 0);

console.log(buf);
// Prints: <Buffer fe ed fa ce>

@since v0.5.5

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 4.

Returns. offset plus the number of bytes written.

abstract member writeUInt32LE (value: float, ?offset: float) : float

Writes value to buf at the specified offset as little-endian. The value must be a valid unsigned 32-bit integer. Behavior is undefined when value is anything other than an unsigned 32-bit integer.

This function is also available under the writeUint32LE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(4);

buf.writeUInt32LE(0xfeedface, 0);

console.log(buf);
// Prints: <Buffer ce fa ed fe>

@since v0.5.5

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 4.

Returns. offset plus the number of bytes written.

abstract member writeUInt8 (value: float, ?offset: float) : float

Writes value to buf at the specified offset. value must be a valid unsigned 8-bit integer. Behavior is undefined when value is anything other than an unsigned 8-bit integer.

This function is also available under the writeUint8 alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(4);

buf.writeUInt8(0x3, 0);
buf.writeUInt8(0x4, 1);
buf.writeUInt8(0x23, 2);
buf.writeUInt8(0x42, 3);

console.log(buf);
// Prints: <Buffer 03 04 23 42>

@since v0.5.0

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - 1.

Returns. offset plus the number of bytes written.

abstract member writeUIntBE (value: float, offset: float, byteLength: float) : float

Writes byteLength bytes of value to buf at the specified offsetas big-endian. Supports up to 48 bits of accuracy. Behavior is undefined when value is anything other than an unsigned integer.

This function is also available under the writeUintBE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(6);

buf.writeUIntBE(0x1234567890ab, 0, 6);

console.log(buf);
// Prints: <Buffer 12 34 56 78 90 ab>

@since v0.5.5

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - byteLength.
byteLengthNumber of bytes to write. Must satisfy 0 < byteLength <= 6.

Returns. offset plus the number of bytes written.

abstract member writeUIntLE (value: float, offset: float, byteLength: float) : float

Writes byteLength bytes of value to buf at the specified offsetas little-endian. Supports up to 48 bits of accuracy. Behavior is undefined when value is anything other than an unsigned integer.

This function is also available under the writeUintLE alias.

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(6);

buf.writeUIntLE(0x1234567890ab, 0, 6);

console.log(buf);
// Prints: <Buffer ab 90 78 56 34 12>

@since v0.5.5

Parameter
valueNumber to be written to buf.
offsetNumber of bytes to skip before starting to write. Must satisfy 0 <= offset <= buf.length - byteLength.
byteLengthNumber of bytes to write. Must satisfy 0 < byteLength <= 6.

Returns. offset plus the number of bytes written.

abstract member writeUint16BE (value: float, ?offset: float) : float

@alias Buffer.writeUInt16BE

abstract member writeUint16LE (value: float, ?offset: float) : float

@alias Buffer.writeUInt16LE

abstract member writeUint32BE (value: float, ?offset: float) : float

@alias Buffer.writeUInt32BE

abstract member writeUint32LE (value: float, ?offset: float) : float

@alias Buffer.writeUInt32LE

abstract member writeUint8 (value: float, ?offset: float) : float

@alias Buffer.writeUInt8

abstract member writeUintBE (value: float, offset: float, byteLength: float) : float

@alias Buffer.writeUIntBE

abstract member writeUintLE (value: float, offset: float, byteLength: float) : float

@alias Buffer.writeUIntLE