localstorage-fifo
v3.0.0
Published
JavaScript library for interacting with localStorage safely.
Downloads
359
Readme
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 test
License
MIT-Style license
Originally forked from rpflorence to fix some issues.