summaryrefslogtreecommitdiff
path: root/apps/web/lib/indexed-database-persister.ts
blob: 216f40933e59403b76c77615356b21650ed86185 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { get, set, del } from "idb-keyval"
import type { PersistedClient, Persister } from "@tanstack/react-query-persist-client"

const INDEXED_DATABASE_KEY = "asa-news-react-query-cache"

export function createIndexedDatabasePersister(): Persister {
  return {
    persistClient: async (client: PersistedClient) => {
      await set(INDEXED_DATABASE_KEY, client)
    },
    restoreClient: async () => {
      return await get<PersistedClient>(INDEXED_DATABASE_KEY)
    },
    removeClient: async () => {
      await del(INDEXED_DATABASE_KEY)
    },
  }
}