Have ideas to improve npm?Join in the discussion! »

    @simmo/store

    0.0.1 • Public • Published

    Store

    Travis npm downloads License

    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 to undefined
    • isNew - Boolean representing if the key is new
    • key - the key passed to set()
    • newValue - the value passed to set()

    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

    Keywords

    Install

    npm i @simmo/store

    DownloadsWeekly Downloads

    1

    Version

    0.0.1

    License

    MIT

    Unpacked Size

    13 kB

    Total Files

    8

    Last publish

    Collaborators

    • avatar