An open API service indexing awesome lists of open source software.

https://github.com/streammedev/storage

A web storage wrapper
https://github.com/streammedev/storage

Last synced: over 1 year ago
JSON representation

A web storage wrapper

Awesome Lists containing this project

README

          

# A Web Storage Wrapper

[![NPM Version](https://img.shields.io/npm/v/@streammedev/storage.svg)](https://npmjs.org/package/@streammedev/storage)
[![NPM Downloads](https://img.shields.io/npm/dm/@streammedev/storage.svg)](https://npmjs.org/package/@streammedev/storage)
[![js-happiness-style](https://img.shields.io/badge/code%20style-happiness-brightgreen.svg)](https://github.com/JedWatson/happiness)

Web storage for cookies/localStorage/sessionStorage/memory with expiration and other helpful features.

**Features:**

- Multiple storage drivers guarantee at minimum in memory storage
- Filter value, useful for storing json or other non-string data
- Filter key, useful for consolidating keys
- Use cookie like path and expires with local and session storage

## Install

```
$ npm install --save @streammedev/storage
```

## Usage

```javascript
var Storage = require('@streammedev/storage');

var store = new Storage({
// backend: null, specify a backend with either a
// string name or constructor function
backend: 'memory'

// Sets the domain, only used with cookies
domain: 'example.com',

// Filter function for getting and settting
setValueFilter: identity,
getValueFilter: identity,

// Filter function for the key
keyFilter: identity
});

store.setItem('foo', 'bar');
store.getItem('foo'); // 'bar'
store.removeItem('foo');
store.getItem('foo'); // undefined
store.clear('foo'); // undefined
```

## Contributing

Contributions are welcome. Please see our guidelines in [CONTRIBUTING.md](contributing.md).