Counted Storage
Lightweight lib to work with the local storage implementing lifetime based on how many times the item was used
How to use
Install the package
npm install counted-storage --save
// or with yarn
yarn add counted-storage
Import it and create your Counted Storage
import CountedStorage from 'counted-storage'
const myStorage = CountedStorage('my_storage')
And that's it!!!
Check the API Reference below to check all that you can do with this package.
API Reference
Creating a new storage
When creating a new Counted Storage, you need to give it a namespace and you can optionally pass a default validity
for the items in that storage. If you don't pass a default validity, the items in that storage will be valid for 1 use only.
You can create as many storages as you want.
import CountedStorage from 'counted-storage'
const myStorage = CountedStorage('my_storage')
const mySecondStorage = CountedStorage('my_second_storage', 5)
get(key: String, defaultValue: any [default: null]): any
Checks if the Counted Storage has the item for the given key and returns if the item is found and if it's still valid,
otherwise returns the defaultValue
import CountedStorage from 'counted-storage'
const myStorage = CountedStorage('my_storage')
myStorage.get('key')
myStorage.get('key', 'default')
getAll(): Object
Returns an object with all the valid items for the Counted Storage
import CountedStorage from 'counted-storage'
const myStorage = CountedStorage('my_storage')
myStorage.getAll();
set(key: String, value: any, validFor: Number [default: Storage default validity])
Sets an item on the Counted Storage with the given key. If validFor
is given, this value will be used instead of the
default validity of the Counted Storage.
import CountedStorage from 'counted-storage'
const myStorage = CountedStorage('my_storage')
myStorage.set('my_key', { message: 'Hello, world' })
myStorage.set('second_key', 1000, 3)
remove(key: String)
Removes an item from the Counted Storage. You can have items with the same key in different Counted Storages.
This is possible using different namespaces for your Counted Storages. If you have items with the same key on
Counted Storages with different namespaces, the remove()
function will remove the item only on the Counted Storage
that you called it.
import CountedStorage from 'counted-storage'
const myStorage = CountedStorage('my_storage')
myStorage.set('my_key', { message: 'Hello, world' })
myStorage.remove('my_key')
clear()
Removes all items from the Counted Storage. This will not affect Counted Storages with different namespaces.
import CountedStorage from 'counted-storage'
const myStorage = CountedStorage('my_storage')
myStorage.set('my_key', { message: 'Hello, world' })
myStorage.set('second_key', 1000, 10)
myStorage.clear()
Contributors
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!