1.0.0 • Published 2 years ago

dyn-ring-buffer v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

A TyepScript/Javascript Dynamic Ring (Circular) Buffer.

Install

npm install dyn-ring-buffer

Usage

Create a new buffer

import { RingBuffer } from 'dyn-ring-buffer';

// a buffer with the size of 10
const buffer = RingBuffer.create<String>(10);

Write and Read

// write two items into the buffer
buffer.write('Hello');
buffer.write('World');

// read from the buffer
buffer.read(); // Hello

Shrink and Grow

const buffer = RingBuffer.create(10);

// grow the buffer with 2
buffer.grow(2);

buffer.size(); // 12

// shrink the buffer by 5
buffer.shrink(5);

buffer.size(); // 7

API

RingBuffer.create()

Create a buffer with the given size. Minimum size is 2, throws error otherwise.

// JS
const buffer = RingBuffer.create(10);
// TS with generics
const buffer RingBuffer.create<string>(10);

buffer.read()

Reads the next available item in the buffer. Throws error if buffer is empty.

buffer.read();

buffer.write()

Write data to the buffer. In typescript use the specified type durring creation. Throws error if buffer is full.

buffer.write('Hello World');

buffer.grow()

Grows the buffer with a given amount. Throws error when trying to grow the buffer with less than 1.

buffer.grow(2); // buffer size + 2

buffer.shrink()

Shrinks the buffer down with the given amount. Throws error when trying to shrink the buffer to less than 2.

buffer.shrink(2) // buffer size - 2

buffer.size()

Returns the size of the buffer.

buffer.size();

buffer.free()

Returns the amount of free space in the buffer.

buffer.free();

buffer.readIndex()

The position of the read token. Starting index is 0.

buffer.readIndex()

buffer.writeIndex()

The position of the write token.Starting index is 0.

buffer.writeIndex()

buffer.flush()

Flushes all the data (resets read and write token) from the buffer. Retains the size if that was changed.

buffer.flush();

buffer.reset()

Resets the buffer to its original size and the read write tokens.

buffer.reset();