# @xylabs/arraybuffer

[![npm][npm-badge]][npm-link]
[![license][license-badge]][license-link]

> Base functionality used throughout XY Labs TypeScript/JavaScript libraries

## Install

Using npm:

```sh
npm install {{name}}
```

Using yarn:

```sh
yarn add {{name}}
```

Using pnpm:

```sh
pnpm add {{name}}
```

Using bun:

```sh
bun add {{name}}
```


## License

See the [LICENSE](LICENSE) file for license rights and limitations (LGPL-3.0-only).

## Reference

### packages

  ### arraybuffer

    ### .temp-typedoc

      ### functions

        ### <a id="equalArrayBuffers"></a>equalArrayBuffers

[**@xylabs/arraybuffer**](#../README)

***

```ts
function equalArrayBuffers(a1, a2): boolean;
```

Compares two ArrayBuffers for byte-level equality.

## Parameters

### a1

`ArrayBufferLike`

First buffer

### a2

`ArrayBufferLike`

Second buffer

## Returns

`boolean`

True if the buffers have the same length and identical bytes

        ### <a id="isArrayBuffer"></a>isArrayBuffer

[**@xylabs/arraybuffer**](#../README)

***

## Call Signature

```ts
function isArrayBuffer(value): value is ArrayBuffer;
```

Type guard that checks if a value is an ArrayBuffer instance.

### Parameters

### value

`unknown`

### Returns

`value is ArrayBuffer`

## Call Signature

```ts
function isArrayBuffer<T>(value): value is Extract<T, ArrayBuffer>;
```

Type guard that checks if a value is an ArrayBuffer instance.

### Type Parameters

### T

`T` *extends* `ArrayBuffer`

### Parameters

### value

`T`

### Returns

`value is Extract<T, ArrayBuffer>`

        ### <a id="isArrayBufferLike"></a>isArrayBufferLike

[**@xylabs/arraybuffer**](#../README)

***

## Call Signature

```ts
function isArrayBufferLike(value): value is ArrayBufferLike;
```

Type guard that checks if a value conforms to the ArrayBufferLike interface (has byteLength and slice).

### Parameters

### value

`unknown`

### Returns

`value is ArrayBufferLike`

## Call Signature

```ts
function isArrayBufferLike<T>(value): value is Extract<T, ArrayBufferLike>;
```

Type guard that checks if a value conforms to the ArrayBufferLike interface (has byteLength and slice).

### Type Parameters

### T

`T` *extends* `ArrayBufferLike`

### Parameters

### value

`T`

### Returns

`value is Extract<T, ArrayBufferLike>`

        ### <a id="toArrayBuffer"></a>toArrayBuffer

[**@xylabs/arraybuffer**](#../README)

***

## Call Signature

```ts
function toArrayBuffer(
   value, 
   padLength?, 
   base?): undefined;
```

Converts a string, bigint, or ArrayBufferLike to an ArrayBufferLike, with optional zero-padding.

### Parameters

### value

`undefined`

The value to convert (hex string, bigint, or existing buffer)

### padLength?

`number`

Minimum byte length, left-padded with zeros if needed

### base?

`number`

Numeric base for string parsing (default 16)

### Returns

`undefined`

The resulting ArrayBufferLike, or undefined if value is undefined

## Call Signature

```ts
function toArrayBuffer(
   value, 
   padLength?, 
   base?): ArrayBufferLike;
```

Converts a string, bigint, or ArrayBufferLike to an ArrayBufferLike, with optional zero-padding.

### Parameters

### value

`string` \| `bigint` \| `ArrayBufferLike`

The value to convert (hex string, bigint, or existing buffer)

### padLength?

`number`

Minimum byte length, left-padded with zeros if needed

### base?

`number`

Numeric base for string parsing (default 16)

### Returns

`ArrayBufferLike`

The resulting ArrayBufferLike, or undefined if value is undefined

## Call Signature

```ts
function toArrayBuffer(
   value, 
   padLength?, 
   base?): ArrayBufferLike | undefined;
```

Converts a string, bigint, or ArrayBufferLike to an ArrayBufferLike, with optional zero-padding.

### Parameters

### value

`string` \| `bigint` \| `ArrayBufferLike` \| `undefined`

The value to convert (hex string, bigint, or existing buffer)

### padLength?

`number`

Minimum byte length, left-padded with zeros if needed

### base?

`number`

Numeric base for string parsing (default 16)

### Returns

`ArrayBufferLike` \| `undefined`

The resulting ArrayBufferLike, or undefined if value is undefined

        ### <a id="toUint8Array"></a>toUint8Array

[**@xylabs/arraybuffer**](#../README)

***

## Call Signature

```ts
function toUint8Array(
   value, 
   padLength?, 
   base?): undefined;
```

Converts a string, bigint, or ArrayBufferLike to a Uint8Array, with optional zero-padding.

### Parameters

### value

`undefined`

The value to convert

### padLength?

`number`

Minimum byte length, left-padded with zeros if needed

### base?

`number`

Numeric base for string parsing (default 16)

### Returns

`undefined`

The resulting Uint8Array, or undefined if value is undefined

## Call Signature

```ts
function toUint8Array(
   value, 
   padLength?, 
   base?): Uint8Array;
```

Converts a string, bigint, or ArrayBufferLike to a Uint8Array, with optional zero-padding.

### Parameters

### value

`string` \| `bigint` \| `ArrayBufferLike`

The value to convert

### padLength?

`number`

Minimum byte length, left-padded with zeros if needed

### base?

`number`

Numeric base for string parsing (default 16)

### Returns

`Uint8Array`

The resulting Uint8Array, or undefined if value is undefined

## Call Signature

```ts
function toUint8Array(
   value, 
   padLength?, 
   base?): Uint8Array<ArrayBufferLike> | undefined;
```

Converts a string, bigint, or ArrayBufferLike to a Uint8Array, with optional zero-padding.

### Parameters

### value

`string` \| `bigint` \| `ArrayBufferLike` \| `undefined`

The value to convert

### padLength?

`number`

Minimum byte length, left-padded with zeros if needed

### base?

`number`

Numeric base for string parsing (default 16)

### Returns

`Uint8Array`\<`ArrayBufferLike`\> \| `undefined`

The resulting Uint8Array, or undefined if value is undefined


[npm-badge]: https://img.shields.io/npm/v/@xylabs/arraybuffer.svg
[npm-link]: https://www.npmjs.com/package/@xylabs/arraybuffer
[license-badge]: https://img.shields.io/npm/l/@xylabs/arraybuffer.svg
[license-link]: https://github.com/xylabs/sdk-js/blob/main/LICENSE
