import idbKeyVal from 'idb-keyval'
import { blobToBase64 } from '../_utils/binary'

let databasePromise

if (process.browser) {
  databasePromise = Promise.resolve().then(async () => {
    let token = await idbKeyVal.get('secure_token')
    if (!token) {
      let array = new Uint32Array(1028)
      crypto.getRandomValues(array);
      let token = await blobToBase64(new Blob([array]))
      await idbKeyVal.set('secure_token', token)
    }
    return idbKeyVal
  })
} else {
  databasePromise = Promise.resolve()
}

export { databasePromise }