@webstory/toolbox
TypeScript icon, indicating that this package has built-in type declarations

1.0.9 • Public • Published

Utility Toolbox

⚠️WARNING⚠️

This package is for study purposes and is not for production use.
If you still got interested, please copy and paste the source code where you need it.

Adding test cases is always welcome.

This package provides a collection of useful utility classes to streamline your development process and help you manage your data structures more efficiently. These classes are designed to be lightweight, easy to use, and highly performant.

Installation

npm install -D @webstory/toolbox

Test

npm run test

Classes

List of classes in this package

ArrayDeque

The ArrayDeque class is a double-ended queue implemented using a JavaScript array. It provides methods to add, remove, and access elements from both ends of the queue. This data structure is useful when you need to maintain a list of items in a specific order, and need to be able to insert and remove elements at both the beginning and end of the list efficiently.

Usage example:

const { ArrayDeque } = require('@webstory/toolbox');

const deque = new ArrayDeque();

deque.push(1);
deque.push(2);
deque.unshift(3);
deque.unshift(4);
deque.pop(); // returns 1
deque.shift(); // returns 4

LRUCache

The LRUCache class is an implementation of a Least Recently Used (LRU) cache, which is a cache that removes the least recently used items first. This can be helpful when you want to store a limited number of items in memory and ensure that the most recently accessed items are always available.

Usage example:

const { LRUCache } = require('@webstory/toolbox');

const cache = new LRUCache(3);

cache.set('a', 1);
cache.set('b', 2);
cache.set('c', 3);
cache.get('a'); // returns 1
cache.set('d', 4); // removes key 'b' from the cache
cache.get('b'); // returns undefined

Authors

  • Hoya
  • ChatGPT

License

MIT

Package Sidebar

Install

npm i @webstory/toolbox

Weekly Downloads

0

Version

1.0.9

License

MIT

Unpacked Size

14 kB

Total Files

18

Last publish

Collaborators

  • hoya82