summaryrefslogtreecommitdiff
path: root/ext/bg/js/database.js
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-08-30 19:38:36 -0400
committertoasted-nutbread <toasted-nutbread@users.noreply.github.com>2019-09-28 21:54:18 -0400
commit664a318d7f5062bd397a8f40241c476dd3107f47 (patch)
treecaa95a583762fd95b9f8d028be4ea3ac223cedc2 /ext/bg/js/database.js
parenta4f8a459deda49af36d46cd93d9ff92c8f98c8c9 (diff)
Use non-async function for cache lookups
Diffstat (limited to 'ext/bg/js/database.js')
-rw-r--r--ext/bg/js/database.js27
1 files changed, 17 insertions, 10 deletions
diff --git a/ext/bg/js/database.js b/ext/bg/js/database.js
index 329399e8..12a2577f 100644
--- a/ext/bg/js/database.js
+++ b/ext/bg/js/database.js
@@ -166,23 +166,30 @@ class Database {
return results;
}
+ findTagForTitleCached(name, title) {
+ if (this.tagCache.hasOwnProperty(title)) {
+ const cache = this.tagCache[title];
+ if (cache.hasOwnProperty(name)) {
+ return cache[name];
+ }
+ }
+ }
+
async findTagForTitle(name, title) {
if (!this.db) {
throw 'Database not initialized';
}
- this.tagCache[title] = this.tagCache[title] || {};
+ const cache = (this.tagCache.hasOwnProperty(title) ? this.tagCache[title] : (this.tagCache[title] = {}));
- let result = this.tagCache[title][name];
- if (!result) {
- await this.db.tagMeta.where('name').equals(name).each(row => {
- if (title === row.dictionary) {
- result = row;
- }
- });
+ let result = null;
+ await this.db.tagMeta.where('name').equals(name).each(row => {
+ if (title === row.dictionary) {
+ result = row;
+ }
+ });
- this.tagCache[title][name] = result;
- }
+ cache[name] = result;
return result;
}