@simmo/store
v0.0.1
Published
JavaScript utility that provides a simple data store.
Downloads
3
Readme
Store
JavaScript utility that provides a simple data store.
Install
NPM
npm install @simmo/store
Yarn
yarn add @simmo/store
Create a new store
import Store from '@simmo/store'
const store = new Store()
Returns a new store.
Config
You can optionally pass a set of options when creating a store.
beforeSet
Expects a function that returns a value. This value will be used instead of the value passed to set()
. The function is provided a data object containing the following properties;
currentValue
- Current value in the store, defaults toundefined
isNew
- Boolean representing if the key is newkey
- the key passed toset()
newValue
- the value passed toset()
The example below would append the new value to the old.
const store = new Store({
beforeSet: ({ currentValue, isNew, newValue }) => {
return isNew ? [newValue] : [...currentValue, newValue]
},
})
store.set('Names', 'Mike')
store.get('Names')
// => ['Mike']
store.set('Names', 'Bob')
store.get('Names')
// => ['Mike', 'Bob']
Methods
set(key, value)
Returns the value saved to the store.
store.set('Name', 'Mike')
// => 'Mike'
has(key)
Returns true
if the key exists, false
if not.
store.set('Name', 'Mike')
store.has('Name')
// => true
store.has(1234)
// => false
get(key)
Returns the key's value.
store.set('Name', 'Mike')
store.get('Name')
// => 'Mike'
delete(key)
If the key exists, the key/value pair is removed and true
is returned. If the key does not exist, it returns false
.
store.set('Name', 'Mike')
store.delete('Name')
// => true
store.delete('Something else')
// => false
clear()
Empties the store.
store.set('Name', 'Mike')
store.size
// => 1
store.clear()
store.size
// => 0
values()
Returns an array of values from the store.
store.set('Name', 'Mike')
store.set('Github', '@simmo')
store.values()
// => ['Mike', '@simmo']
keys()
Returns an array of the keys used in the store.
store.set('Name', 'Mike')
store.set('Github', '@simmo')
store.values()
// => ['Name', 'Github']
Properties
size
Returns the number of key/value pairs in the store.
store.set('Name', 'Mike')
store.size
// => 1
License
MIT © Mike Simmonds