3.0.0 • Published 4 years ago
localstorage-fifo v3.0.0
Fifo
First In First Out accounting for JavaScript localStorage.
npm install --save localstorage-fifo
About
localStorage doesn't have an unlimited amount of space, and just throws an error when you try to save to it when its full. fifo gracefully handles saving data to localStorage: when you run out of room it simply removes the earliest item(s) saved.
Additionally, fifo also stores all of your key:value pairs on one key in localStorage for better performance.
API
// create a collection stored on `tasks` key in localStorage
const collection = new Fifo({ namespace: 'tasks' });
// set an item
collection.set('task-1', 'close two tickets');
// retrieve an item - preference for fixed items, then FIFO queue
var storedTask = collection.get('task-1'); //> 'close two tickets'
// retrieve all items by sending no arguments to get
var tasks = collection.get();
// remove an item - preference for fixed items, then FIFO queue
collection.remove('task-1');// empty an entire FIFO queue
collection.empty();
// set any JavaScript object, don't have to JSON.parse or JSON.stringify() yourself when setting and getting.
collection.set('task:2', { due: 'sunday', task: 'go to church' });
collection.set('whatevz', [1,2,3]);
// get a list of all keys, both those in fifo and fixed localStorage
collection.keys(); /* Returns an array of key names */
// Check to see if a key exists in the FIFO queue or fixed localStorage
collection.has('key'); /* true or false */Please see the source for more details.
Browser Support
fifo assumes the browser has localStorage and JSON. There is a localStorage shim but it will not persist.
Testing
npm run lint
npm run make
npm run testLicense
MIT-Style license
Originally forked from rpflorence to fix some issues.