sto
stoor
npm i stoor
sto

stoor

Storage wrapper with support for namespacing, timeouts and multi get/set and remove.

by Tiaan

2.3.1 (see all)License:MITTypeScript:Built-In
npm i stoor
Readme

📦 stoor

package version package downloads standard-readme compliant package license make a pull request

Storage wrapper with support for namespacing, timeouts and multi get/set and remove.

👀 Background

This module is a small wrapper around the localStorage and session.

Features

  • Parsing and stringification of values
  • Custom storage adaptor
  • Plugable fallback (defaults to in memory)
  • Namespacing
  • Multi get, set & remove of values
  • Expiring values

Install

⚙️ Install

Install the package locally within you project folder with your package manager:

With npm:

npm install stoor

With yarn:

yarn add stoor

With pnpm:

pnpm add stoor

📖 Usage

Kitchen sink


var things = new Stoor({ namespace: 'things' }) // Namespaced to things and uses local storage
var otherThings = new Stoor({ namespace: 'otherThings', storage: 'session' }) // Namespaced to other things and uses Session storage
things.set('foo', 1)
things.set('bar', 2)
things.set('baz', { foo: 4, baz: 4 })
console.log(things.get('baz')) // {foo: 4, baz: 4}
console.log(otherThings.get('baz')) // null
console.log(things.get(['foo', 'bar'])) // [1, 2]

things.remove(['foo', 'bar'])
console.log(things.get(['foo', 'bar'])) // [null, null]

otherThings.set([['bar', 5], ['foo', 6]]) // Array of key value pairs to multi set
console.log(otherThings.get(['foo', 'bar'])) // [6, 5]

otherThings.set('nana', 1, 5000) // Will expire within 5000 ms.
otherThings.get('nana', 3) // Returns default value if expired.

things.clear()

Custom storage

You can configure any module that conforms to the the localStorage/sessionStorage API to be the fallback or main method of storage.

For example using cookie-session-storage:

new Stoor({fallback: cookieSessionStorage})
new Stoor({storage: cookieSessionStorage})

📚 API

For all configuration options, please see the API docs.

💬 Contributing

Got an idea for a new feature? Found a bug? Contributions are welcome! Please open up an issue or make a pull request.

🪪 License

MIT © Tiaan du Plessis

No alternatives found
No tutorials found
Add a tutorial
No dependencies found

Rate & Review

100
No reviews found
Be the first to rate