summaryrefslogtreecommitdiff
path: root/ext/bg/js/database.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/bg/js/database.js')
-rw-r--r--ext/bg/js/database.js16
1 files changed, 12 insertions, 4 deletions
diff --git a/ext/bg/js/database.js b/ext/bg/js/database.js
index 469b1311..9e90e6de 100644
--- a/ext/bg/js/database.js
+++ b/ext/bg/js/database.js
@@ -233,7 +233,7 @@ class Database {
throw 'Database not initialized';
}
- const indexDataLoaded = async summary => {
+ const indexDataValid = async summary => {
if (summary.version > 2) {
throw 'Unsupported dictionary version';
}
@@ -242,7 +242,9 @@ class Database {
if (count > 0) {
throw 'Dictionary is already imported';
}
+ };
+ const indexDataLoaded = async summary => {
await this.db.dictionaries.add(summary);
};
@@ -280,6 +282,8 @@ class Database {
}
}
+ summary.hasSequences = rows.every(row => row.sequence >= 0);
+
await this.db.terms.bulkAdd(rows);
};
@@ -377,6 +381,7 @@ class Database {
return await Database.importDictionaryZip(
archive,
+ indexDataValid,
indexDataLoaded,
termDataLoaded,
termMetaDataLoaded,
@@ -388,6 +393,7 @@ class Database {
static async importDictionaryZip(
archive,
+ indexDataValid,
indexDataLoaded,
termDataLoaded,
termMetaDataLoaded,
@@ -413,9 +419,7 @@ class Database {
version: index.format || index.version
};
- if (indexDataLoaded) {
- await indexDataLoaded(summary);
- }
+ await indexDataValid(summary);
const buildTermBankName = index => `term_bank_${index + 1}.json`;
const buildTermMetaBankName = index => `term_meta_bank_${index + 1}.json`;
@@ -472,6 +476,10 @@ class Database {
await loadBank(summary, buildKanjiMetaBankName, kanjiMetaBankCount, kanjiMetaDataLoaded);
await loadBank(summary, buildTagBankName, tagBankCount, tagDataLoaded);
+ if (indexDataLoaded) {
+ await indexDataLoaded(summary);
+ }
+
return summary;
}
}