Import: Be resilient to deletions from importObject

pull/27/head^2
Scott Nonnenberg 7 years ago
parent 0a6827ecda
commit 7aa9031c7f

@ -343,6 +343,8 @@ async function importFromJsonString(db, jsonString, targetPath, options) {
transaction.oncomplete = finish.bind(null, 'transaction complete'); transaction.oncomplete = finish.bind(null, 'transaction complete');
_.each(remainingStoreNames, storeName => { _.each(remainingStoreNames, storeName => {
const items = importObject[storeName];
window.log.info('Importing items for store', storeName); window.log.info('Importing items for store', storeName);
let count = 0; let count = 0;
@ -366,11 +368,12 @@ async function importFromJsonString(db, jsonString, targetPath, options) {
} }
}; };
if (!importObject[storeName].length) { if (!items || !items.length) {
finishStore(); finishStore();
return;
} }
_.each(importObject[storeName], toAdd => { _.each(items, toAdd => {
toAdd = unstringify(toAdd); toAdd = unstringify(toAdd);
const haveGroupAlready = const haveGroupAlready =
@ -385,7 +388,7 @@ async function importFromJsonString(db, jsonString, targetPath, options) {
const request = transaction.objectStore(storeName).put(toAdd, toAdd.id); const request = transaction.objectStore(storeName).put(toAdd, toAdd.id);
request.onsuccess = () => { request.onsuccess = () => {
count += 1; count += 1;
if (count === importObject[storeName].length) { if (count + skipCount >= items.length) {
finishStore(); finishStore();
} }
}; };

Loading…
Cancel
Save