aboutsummaryrefslogtreecommitdiff
path: root/apps/web/stores/indexeddb-storage.ts
blob: c2a1db9137734b6492e17c073e5e22df05a1f4af (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);
  },
};