JSPM

dyn-ring-buffer

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6
  • Score
    100M100P100Q16546F
  • License MIT

A dynamic size ring buffer for Typescript/Javascript.

Package Exports

  • dyn-ring-buffer
  • dyn-ring-buffer/dist/cjs/index.js
  • dyn-ring-buffer/dist/esm/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (dyn-ring-buffer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Ring Buffer
Dynamic Ring Buffer

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();