From aea55b348f6c0f1511b8fb1e98f48b5126c8eff8 Mon Sep 17 00:00:00 2001 From: Musee Ullah Date: Mon, 11 Sep 2017 20:11:53 -0700 Subject: [PATCH] Import terms/kanji with transactional adds instead of bulkAdd on async --- ext/bg/js/database.js | 52 +++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/ext/bg/js/database.js b/ext/bg/js/database.js index e00cb7a3..65fc78fb 100644 --- a/ext/bg/js/database.js +++ b/ext/bg/js/database.js @@ -187,20 +187,19 @@ class Database { callback(total, current); } - const rows = []; - for (const [expression, reading, tags, rules, score, ...glossary] of entries) { - rows.push({ - expression, - reading, - tags, - rules, - score, - glossary, - dictionary: title - }); - } - - await this.db.terms.bulkAdd(rows); + await this.db.transaction('rw', this.db.terms, async function() { + for (const [expression, reading, tags, rules, score, ...glossary] of entries) { + this.db.terms.add({ + expression, + reading, + tags, + rules, + score, + glossary, + dictionary: title + }); + } + }); }; const kanjiLoaded = async (title, entries, total, current) => { @@ -208,19 +207,18 @@ class Database { callback(total, current); } - const rows = []; - for (const [character, onyomi, kunyomi, tags, ...meanings] of entries) { - rows.push({ - character, - onyomi, - kunyomi, - tags, - meanings, - dictionary: title - }); - } - - await this.db.kanji.bulkAdd(rows); + await this.db.transaction('rw', this.db.kanji, async function() { + for (const [character, onyomi, kunyomi, tags, ...meanings] of entries) { + this.db.kanji.add({ + character, + onyomi, + kunyomi, + tags, + meanings, + dictionary: title + }); + } + }); }; await Database.importDictionaryZip(archive, indexLoaded, termsLoaded, kanjiLoaded);