aboutsummaryrefslogtreecommitdiff
path: root/apps/web/stores/indexeddb-storage.ts
blob: d1e3ecbf8454110d67cbd4d5b4d672df492c1338 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { get, set, del } from "idb-keyval"

export const indexedDBStorage = {
	getItem: async (name: string) => {
		let value = await get(name)
		if (value !== undefined) {
			return value
		}
		// Migrate from localStorage if exists
		value = localStorage.getItem(name)
		if (value !== null) {
			await set(name, value)
			localStorage.removeItem(name)
			return value
		}
		return null
	},
	setItem: async (name: string, value: string) => {
		await set(name, value)
	},
	removeItem: async (name: string) => {
		await del(name)
	},
}