JSFiddle - React, Tailwind, and code Playground

JavaScript

indexedDB.deleteDatabase('foo').onsuccess = function () { 

  var idb;
  var req = indexedDB.open('foo');
    var docs = [ { my_index: new Date().getTime() } ];


  function writeDocs(docs) {

    if (!docs.length) { 
      console.log('done writing');
      return;
    }

    var txn = idb.transaction(['some_store_name'], 'readwrite');
    var doc = docs.shift();
    console.log('writing', doc);

    var get = txn.objectStore('some_store_name').index('my_index')
      .get(doc.my_index);

    get.onsuccess = function(e) { 

      var key = null;

      if (e.target.result) { 
        // If there is a result here, I want to overwrite it
        // to do that I need its key, cant find it here?    
        console.log(e.target.result);
      }

      var dataReq =  key ? txn.objectStore('some_store_name').put(doc, key) : txn.objectStore('some_store_name').put(doc);

      dataReq.onsuccess = function (e) {
        key =  e.target.result;
        writeDocs(docs);
      }

      dataReq.onerror = function () { 
        console.log('it broke');
        writeDocs(txn, docs);
      }
    }
  };

  req.onupgradeneeded = function(e) {
    var db = e.target.result;
    db.createObjectStore('some_store_name', {autoIncrement : true})
      .createIndex('my_index', 'my_index', {unique: true});
  };

  req.onsuccess = function(e) { 
    idb = e.target.result;
    writeDocs(docs);
  };
}