Close database connection via Backbone IDB adapter

pull/1/head
Daniel Gasienica 7 years ago
parent f50e9ae364
commit 5bea894abd

@ -7,25 +7,8 @@ const isString = require('lodash/isString');
const { deferredToPromise } = require('../deferred_to_promise'); const { deferredToPromise } = require('../deferred_to_promise');
const closeDatabase = name => const closeDatabase = ({ Backbone } = {}) =>
new Promise((resolve, reject) => { deferredToPromise(Backbone.sync('closeall'))
const request = window.indexedDB.open(name);
request.onblocked = () => {
reject(new Error(`Database '${name}' blocked`));
};
request.onupgradeneeded = (event) => {
reject(new Error('Unexpected database upgraded needed:' +
` oldVersion: ${event.oldVersion}, newVersion: ${event.newVersion}`));
};
request.onerror = (event) => {
reject(event.target.error);
};
request.onsuccess = (event) => {
const connection = event.target.result;
connection.close();
resolve();
};
});
exports.runMigrations = async ({ Backbone, database } = {}) => { exports.runMigrations = async ({ Backbone, database } = {}) => {
if (!isObject(Backbone) || !isObject(Backbone.Collection) || if (!isObject(Backbone) || !isObject(Backbone.Collection) ||
@ -44,5 +27,6 @@ exports.runMigrations = async ({ Backbone, database } = {}) => {
}))(); }))();
await deferredToPromise(migrationCollection.fetch({ limit: 1 })); await deferredToPromise(migrationCollection.fetch({ limit: 1 }));
await closeDatabase(database.id); console.log('Close database connection');
await closeDatabase({ Backbone });
}; };

Loading…
Cancel
Save