async openDatabase_() {
   if (!CONNECTION_POOL.has(this.databaseName)) {
     const connection = await idb.open(
         this.databaseName, this.databaseVersion,
         db => this.upgradeDatabase(db));
     CONNECTION_POOL.set(this.databaseName, connection);
   }
   return CONNECTION_POOL.get(this.databaseName);
 }
IDBHelper.prototype._getDb = function() {
  if (this._db) {
    return Promise.resolve(this._db);
  }

  return idb.open(this._name, this._version, upgradeDB => {
    upgradeDB.createObjectStore(this._storeName);
  }).then(db => {
    this._db = db;
    return db;
  });
};
示例#3
0
 return new Promise((resolve, reject) => {
     this.dbh = idb.open(dbName, 2, (upgradeDb) => {
         if (debug) {
             console.log('IndexDbClass.indexedDBCheckOpen: making a new object store');
         }
         if (!upgradeDb.objectStoreNames.contains('events')) {
             const events = upgradeDb.createObjectStore('events', { keyPath: 'id' });
             events.createIndex('id', 'id', { unique: true });
             events.createIndex('time', 'time', { unique: false });
         }
     });
     return resolve(this.dbh);
 });
var staticCacheName = 'restaurant-reviews-static-v1';
var idb = require('idb');

let DBNAME = 'restaurant';
let OBJECT_STORE_NAME = 'restaurantStore';
let REVIEWS_OBJECT_STORE_NAME = 'reviewsStore';
let REVIEWS_OUTBOX_STORE = 'reviewsOutbox';
let FAVORITE_OUTBOX_STORE = 'favoriteOutbox';
let DB_URL = 'http://localhost:1337/';

var dbPromise = idb.open(DBNAME, 1, function (upgradeDB){
  var restaurantStore = upgradeDB.createObjectStore(OBJECT_STORE_NAME, {keyPath: 'id'});
  
  var reviewsStore = upgradeDB.createObjectStore(REVIEWS_OBJECT_STORE_NAME, {keyPath: 'id'});
  reviewsStore.createIndex("restaurant_id", "restaurant_id", { unique: false });

  let reviewsOutbox = upgradeDB.createObjectStore(REVIEWS_OUTBOX_STORE, { autoIncrement : true , keyPath: 'id'});
  reviewsOutbox.createIndex("restaurant_id", "restaurant_id", { unique: false });

  let favoriteOutbox = upgradeDB.createObjectStore(FAVORITE_OUTBOX_STORE, { keyPath : 'restaurant_id' });
});

self.addEventListener('install', function(event) {
  event.waitUntil(self.skipWaiting().then(
    caches.open(staticCacheName).then(function(cache) {
      return cache.addAll([
        'css/',
        'data/',
        'img/',
        'js/'
      ]);
示例#5
0
 _open() {
   return this._dbPromise = idb.open(this._id, 1, upgradeDB => {
     upgradeDB.createObjectStore(CART_STORE, {autoIncrement: true});
   });
 }
示例#6
0
import idb from 'idb';

export const dbPromise = idb.open('bayTripr', 1, function(upgradeDb) {
  const bayTriprStore = upgradeDb.createObjectStore('bayTripr');
  loadData();
})

function loadData(){
  console.log('Local data not found, trying to load from server.');
  fetch('./theData.json').then(response => response.json()).then(function(data){
    dbPromise.then(function(db) {
      var tx = db.transaction('bayTripr', 'readwrite');
      var bayTripr = tx.objectStore('bayTripr');
      bayTripr.put(data, 'data').then(function() {
        console.log('Entered stop data into local database.');
      })
    });
  });
}