Localforage: Add simple replacement.

This commit is contained in:
lain 2020-06-10 16:28:31 +02:00
parent 4e3ce18703
commit 94a24e1754
2 changed files with 47 additions and 2 deletions

View file

@ -0,0 +1,42 @@
const wrap = (request) => {
return new Promise((resolve, reject) => {
request.onerror = (event) => reject(event)
request.onsuccess = (event) => resolve(event.target.result)
})
}
const getDb = (database, version) => {
const request = window.indexedDB.open(database, version)
request.onupgradeneeded = (event) => {
const db = event.target.result
db.createObjectStore('keyvaluepairs')
}
return wrap(request)
}
const storageBuilder = (database = 'storage_2', version = 1) => ({
getItem: async (key) => {
const db = await getDb(database, version)
const dataRequest =
db
.transaction(['keyvaluepairs'])
.objectStore('keyvaluepairs')
.get(key)
const dataRequestPromise = wrap(dataRequest)
return dataRequestPromise
},
setItem: async (key, value) => {
const db = await getDb(database, version)
const dataRequest =
db
.transaction(['keyvaluepairs'], 'readwrite')
.objectStore('keyvaluepairs')
.put(value, key)
return wrap(dataRequest)
}
})
export default storageBuilder

View file

@ -1,6 +1,7 @@
import merge from 'lodash.merge'
import objectPath from 'object-path'
import localforage from 'localforage'
// import localforage from 'localforage'
import localforage2 from './localforage_redux'
import { each } from 'lodash'
let loaded = false
@ -24,7 +25,9 @@ const saveImmedeatelyActions = [
]
const defaultStorage = (() => {
return localforage
// Use this to use the existing localforage db
// return localforage2('localforage', 2)
return localforage2()
})()
export default function createPersistedState ({