[ICO]NameLast modifiedSizeDescription
[PARENTDIR]Parent Directory  -  
[DIR]build/2023-10-19 15:45 -  
[DIR]src/2023-10-19 15:45 -  
[   ]LICENSE2023-10-19 15:45 1.1Kf0d2fc9 test post-receive hook [كارل مبارك]
[TXT]README.md2023-10-19 15:45 1.6K15de0e0 styling, texts [كارل مبارك]
[   ]package.json2023-10-19 15:45 3.3K120707f added node version q18.16 to dependincies [كارل مبارك]
# multi-buffer-data-view

**A wrapper around the native DataView which can handle multiple ArrayBuffers.**

[![version](https://img.shields.io/npm/v/multi-buffer-data-view.svg?style=flat-square)](https://www.npmjs.com/package/multi-buffer-data-view)

This module provides a wrapper around the native DataView. But instead of supporting only one ArrayBuffer as the backing memory the `MultiBufferDataView` exported by this module can operate across multiple ArrayBuffers.

## Usage

The `multi-buffer-data-view` module is available on [npm](https://www.npmjs.com/package/multi-buffer-data-view) and can be installed as usual.

```shell
npm install multi-buffer-data-view
```

It exports only one class called `MultiBufferDataView` which can be imported like this:

```js
import { MultiBufferDataView } from 'multi-buffer-data-view';
```

A `MultiBufferDataView` behaves almost like a native DataView with the notable exception that it can handle multiple ArrayBuffers.

```js
const anArrayBuffer = new ArrayBuffer(23);
const anotherArrayBuffer = new ArrayBuffer(41);

new MultiBufferDataView([anArrayBuffer, anotherArrayBuffer]);
```

The little example above will create a `MultiBufferDataView` which uses all 64 bytes that are available in the given ArrayBuffers. However it is also possible to limit the range of accessible bytes by providing a `byteOffset` or a `byteLength` as additional arguments.

```js
new MultiBufferDataView([anArrayBuffer, anotherArrayBuffer], 12, 24);
```

When creating a `MultiBufferDataView` with the parameters above it will only use the last 11 bytes of the first ArrayBuffer and the first 13 bytes of the second ArrayBuffer.