@plugnet/binary-encoding-utilities
v1.0.0
Published
Provides zero-dependency utility functions for plugnet's binary encoding needs.
Maintainers
Readme
@plugnet/binary-encoding-utilities
Provides zero-dependency utility functions for plugnet's binary encoding needs.
Installing
npm install --save @plugnet/binary-encoding-utilities
// or
yarn add @plugnet/binary-encoding-utilitiesDevelopment
Testing:
npm testLinting:
npm run lintAPI
Interface {
isObject,
printBytes,
flipEndianness,
flipU8aEndianness,
numberToLEBytes,
LEBytesToNumber,
getStringFromU8a,
}isObject
Checks whether a value is an object. Returns a boolean.
isObject(value) -> BooleanprintBytes
A debug helper. Prints to stdout a Uint8Array, or a window onto a Uint8Array, in
its binary representation.
arrayis theUint8Arrayto read frombytesis the byte count to read. Defaults to thearraylength.offsetis the starting byte, or the first byte to read.
Returns undefined.
printBytes(
array: Uint8Array,
bytes:Number={array.length},
offset:Number=0
) -> UndefinedflipEndianness
Recursively flips the endianness of a number or typed aray value of a particular bit length.
Note: Javascript Number is Big Endian.
inputis the number to be flipped.bitsindicates the bit length of the number to be flipped.offsetspecifies how many places from the right recursion will start from.
Returns a number.
flipEndianness(
input:Number,
bits:Number=8,
offset:Number=0
) -> NumberflipU8aEndianness
Flips the endianness of a window onto a Uint8Array.
inputis theUint8Arrayto be operated onbytesis the number of bytes to flip, from left to rightoffsetis the index to begin operating from
Modifies the Uint8Array in-place, and returns nothing.
flipU8aEndianness(
input:Uint8Array,
bytes:Number={input.length},
offset:Number=0
) -> UndefinednumberToLEBytes
Takes a number and converts it to LE bytes representation, before
writing it to a window onto a Uint8Array.
numberis the integer to be writtenarrayis theUint8Arrayto have the number placed intobytesis the number of bytes to move into theUint8Arrayoffsetis theUint8Arrayindex to begin writing to, left to right
Modifies the Uint8Array in-place, and returns nothing.
numberToLEBytes(
number:Number,
array:Uint8Array,
bytes:Number=0,
offset:Number=0
) -> UndefinedLEBytesToNumber
Takes a window onto a Uint8Array and converts it from a LE multi-byte
representation of an integer into a Number.
arrayis theUint8Arrayto have the number placed intobytesis the number of bytes to move into theUint8Arrayoffsetis theUint8Arrayindex to begin writing to, left to right
Returns a Number.
LEBytesToNumber(
array:Uint8Array,
bytes:Number={array.length},
offset:Number=0
) -> UndefinedgetStringFromU8a
Takes a window onto a Uint8Array and extracts an ASCII string,
ignoring 0 values.
arrayis theUint8Arrayto extract the string frombytesis the number of bytes to extract from theUint8Arrayoffsetis the index to start reading from
getStringFromU8a(
array,
bytes,
offset,
) -> String