From b8627813be56e04c18baf38885f3a3dc0fb7496c Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sun, 24 Jan 2016 02:29:13 +0100 Subject: Replace handlebars with mithril, hooks for i18n. The wallet is now a single page application. --- extension/lib/wallet/query.ts | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) (limited to 'extension/lib/wallet/query.ts') diff --git a/extension/lib/wallet/query.ts b/extension/lib/wallet/query.ts index dda716d07..375816193 100644 --- a/extension/lib/wallet/query.ts +++ b/extension/lib/wallet/query.ts @@ -39,7 +39,7 @@ export interface QueryStream { indexName: string, keyFn: (obj: any) => any): QueryStream<[T,S]>; filter(f: (any) => boolean): QueryStream; - reduce(f: (S, T) => S, acc?: S): Promise; + reduce(f: (v: T, acc: S) => S, start?: S): Promise; } @@ -166,7 +166,7 @@ class IterQueryStream extends QueryStreamBase { private storeName; private options; - constructor(qr, storeName, options?) { + constructor(qr, storeName, options) { super(qr); this.options = options; this.storeName = storeName; @@ -174,15 +174,16 @@ class IterQueryStream extends QueryStreamBase { subscribe(f) { let doIt = (tx) => { + const {indexName = void 0, only = void 0} = this.options; let s; - if (this.options && this.options.indexName) { + if (indexName !== void 0) { s = tx.objectStore(this.storeName) .index(this.options.indexName); } else { s = tx.objectStore(this.storeName); } let kr = undefined; - if (this.options && ("only" in this.options)) { + if (only !== void 0) { kr = IDBKeyRange.only(this.options.only); } let req = s.openCursor(kr); @@ -218,23 +219,11 @@ class QueryRoot { this.db = db; } - iter(storeName): QueryStream { + iter(storeName, {only = void 0, indexName = void 0} = {}): QueryStream { this.stores.add(storeName); - return new IterQueryStream(this, storeName); + return new IterQueryStream(this, storeName, {only, indexName}); } - iterOnly(storeName, key): QueryStream { - this.stores.add(storeName); - return new IterQueryStream(this, storeName, {only: key}); - } - - - iterIndex(storeName, indexName, key) { - this.stores.add(storeName); - return new IterQueryStream(this, storeName, {indexName: indexName}); - } - - /** * Put an object into the given object store. * Overrides if an existing object with the same key exists -- cgit v1.2.3