diff options
| author | Musee Ullah <lae@lae.is> | 2017-09-11 20:11:53 -0700 | 
|---|---|---|
| committer | Musee Ullah <lae@lae.is> | 2017-09-11 20:11:53 -0700 | 
| commit | aea55b348f6c0f1511b8fb1e98f48b5126c8eff8 (patch) | |
| tree | a59c54432d26760af4655c995066aa5f80caaa97 | |
| parent | 2eb85cb835a4aece7839eba25c0030e9eb186f85 (diff) | |
Import terms/kanji with transactional adds instead of bulkAdd on async
| -rw-r--r-- | ext/bg/js/database.js | 52 | 
1 files 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); |