jsonify-storage

Introduction
There is a unfriendly case when we use the the native localStorage
, such as
localStorage.setItem('foo', { a: 123 })
localStorage.getItem('foo')
localStorage.setItem('bar', 123)
localStorage.getItem('bar')
So, jsonify it!
Install
⚠Notice: Can only works in browser environment, other scene need define global variable to mock Storage
.
global.localStorage = yourLocalStorage
global.sessionStorage = yourSessionStorage
Node:
npm i -D jsonify-storage
Browser:
<script src="./dist/jsonify-storage.umd.min.js"></script>
Usage
Import in Node:
import { local, session } from 'jsonify-storage'
const { local, session } = require('jsonify-storage')
In Browser:
const { local, session } = jsonifyStorage
local
means localStorage
session
means sessionStorage
Then you can use it like this:
local.set('foo', { a: 123 })
local.get('foo')
local.get('foo').a === 123
Payload will be json-stringified before save.
Raw data seems like this:
localStorage.getItem('foo')
If you try to get something can't parsed by JSON or not existed will return null
localStorage.setItem('bar', '我我我')
local.get('bar')
local.get('baz')
Others apis sames as native Storage
, list below.
- setItem -> set
- getItem -> get
- removeItem -> remove
- clear -> clear
- key -> key
- length -> length
More details see API documentation.