mirror of
https://github.com/vector-im/hydrogen-web.git
synced 2024-12-23 03:25:12 +01:00
respect argument count of idb calls
lumia doesn't like undefined arguments if they are being left out, so call the idb calls with the exact amount of arguments
This commit is contained in:
parent
bbb5e35bcb
commit
b882e0ef8a
@ -5,6 +5,18 @@ export default class QueryTarget {
|
|||||||
this._target = target;
|
this._target = target;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_openCursor(range, direction) {
|
||||||
|
if (range && direction) {
|
||||||
|
return this._target.openCursor(range, direction);
|
||||||
|
} else if (range) {
|
||||||
|
return this._target.openCursor(range);
|
||||||
|
} else if (direction) {
|
||||||
|
return this._target.openCursor(null, direction);
|
||||||
|
} else {
|
||||||
|
return this._target.openCursor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
get(key) {
|
get(key) {
|
||||||
return reqAsPromise(this._target.get(key));
|
return reqAsPromise(this._target.get(key));
|
||||||
}
|
}
|
||||||
@ -34,7 +46,7 @@ export default class QueryTarget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async selectAll(range, direction) {
|
async selectAll(range, direction) {
|
||||||
const cursor = this._target.openCursor(range, direction);
|
const cursor = this._openCursor(range, direction);
|
||||||
const results = [];
|
const results = [];
|
||||||
await iterateCursor(cursor, (value) => {
|
await iterateCursor(cursor, (value) => {
|
||||||
results.push(value);
|
results.push(value);
|
||||||
@ -97,7 +109,7 @@ export default class QueryTarget {
|
|||||||
|
|
||||||
_reduce(range, reducer, initialValue, direction) {
|
_reduce(range, reducer, initialValue, direction) {
|
||||||
let reducedValue = initialValue;
|
let reducedValue = initialValue;
|
||||||
const cursor = this._target.openCursor(range, direction);
|
const cursor = this._openCursor(range, direction);
|
||||||
return iterateCursor(cursor, (value) => {
|
return iterateCursor(cursor, (value) => {
|
||||||
reducedValue = reducer(reducedValue, value);
|
reducedValue = reducer(reducedValue, value);
|
||||||
return {done: false};
|
return {done: false};
|
||||||
@ -111,7 +123,7 @@ export default class QueryTarget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async _selectWhile(range, predicate, direction) {
|
async _selectWhile(range, predicate, direction) {
|
||||||
const cursor = this._target.openCursor(range, direction);
|
const cursor = this._openCursor(range, direction);
|
||||||
const results = [];
|
const results = [];
|
||||||
await iterateCursor(cursor, (value) => {
|
await iterateCursor(cursor, (value) => {
|
||||||
results.push(value);
|
results.push(value);
|
||||||
@ -121,7 +133,7 @@ export default class QueryTarget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async _find(range, predicate, direction) {
|
async _find(range, predicate, direction) {
|
||||||
const cursor = this._target.openCursor(range, direction);
|
const cursor = this._openCursor(range, direction);
|
||||||
let result;
|
let result;
|
||||||
const found = await iterateCursor(cursor, (value) => {
|
const found = await iterateCursor(cursor, (value) => {
|
||||||
const found = predicate(value);
|
const found = predicate(value);
|
||||||
|
@ -44,8 +44,10 @@ export function iterateCursor(cursor, processValue) {
|
|||||||
const {done, jumpTo} = processValue(cursor.value, cursor.key);
|
const {done, jumpTo} = processValue(cursor.value, cursor.key);
|
||||||
if (done) {
|
if (done) {
|
||||||
resolve(true);
|
resolve(true);
|
||||||
} else {
|
} else if(jumpTo) {
|
||||||
cursor.continue(jumpTo);
|
cursor.continue(jumpTo);
|
||||||
|
} else {
|
||||||
|
cursor.continue();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
|
Loading…
Reference in New Issue
Block a user