@creasource/reactive-idb
Version:
A reactive wrapper to indexedDb using Rxjs
94 lines • 6.23 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ReactiveIDBIndex = void 0;
const operators_1 = require("rxjs/operators");
const wrap_request_util_1 = require("./utils/wrap-request.util");
class ReactiveIDBIndex {
/**
*
* @param index
* @param objectStore The ReactiveIDBObjectStore this index belongs to.
*/
constructor(index, objectStore) {
this.index = index;
this.objectStore = objectStore;
}
get keyPath() {
return this.index.keyPath;
}
get multiEntry() {
return this.index.multiEntry;
}
/**
* Returns the name of the index.
*/
get name() {
return this.index.name;
}
/**
*
*/
get unique() {
return this.index.unique;
}
/**
* Retrieves the number of records matching the given key or key range in query.
*
* If successful, request's result will be the count.
*/
count$(key) {
return (0, wrap_request_util_1.wrapRequest)(() => this.index.count(key));
}
/**
* Retrieves the value of the first record matching the given key or key range in query.
*
* If successful, request's result will be the value, or undefined if there was no matching record.
*/
get$(key) {
return (0, wrap_request_util_1.wrapRequest)(() => this.index.get(key)).pipe((0, operators_1.map)((value) => value !== undefined
? this.objectStore.transformer.deserialize(value)
: value));
}
/**
* Retrieves the values of the records matching the given key or key range in query (up to count if given).
*
* If successful, request's result will be an Array of the values.
*/
getAll$(query, count) {
return (0, wrap_request_util_1.wrapRequest)(() => this.index.getAll(query, count)).pipe((0, operators_1.map)((values) => values.map((v) => this.objectStore.transformer.deserialize(v))));
}
/**
* Retrieves the keys of records matching the given key or key range in query (up to count if given).
*
* If successful, request's result will be an Array of the keys.
*/
getAllKeys$(query, count) {
return (0, wrap_request_util_1.wrapRequest)(() => this.index.getAllKeys(query, count));
}
/**
* Retrieves the key of the first record matching the given key or key range in query.
*
* If successful, request's result will be the key, or undefined if there was no matching record.
*/
getKey$(key) {
return (0, wrap_request_util_1.wrapRequest)(() => this.index.getKey(key));
}
/**
* Opens a cursor over the records matching query, ordered by direction. If query is null, all records in index are matched.
*
* If successful, request's result will be an IDBCursorWithValue, or null if there were no matching records.
*/
openCursor$(query, direction) {
return (0, wrap_request_util_1.wrapRequest)(() => this.index.openCursor(query, direction), false);
}
/**
* Opens a cursor with key only flag set over the records matching query, ordered by direction. If query is null, all records in index are matched.
*
* If successful, request's result will be an IDBCursor, or null if there were no matching records.
*/
openKeyCursor$(query, direction) {
return (0, wrap_request_util_1.wrapRequest)(() => this.index.openKeyCursor(query, direction), false);
}
}
exports.ReactiveIDBIndex = ReactiveIDBIndex;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtaWRiLWluZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZWFjdGl2ZS1pZGItaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOENBQXFDO0FBR3JDLGlFQUF3RDtBQUV4RCxNQUFhLGdCQUFnQjtJQXNCM0I7Ozs7T0FJRztJQUNILFlBQ21CLEtBQWUsRUFDdkIsV0FBc0M7UUFEOUIsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBMkI7SUFDOUMsQ0FBQztJQTdCSixJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFDRDs7T0FFRztJQUNILElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBWUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxHQUErQjtRQUNwQyxPQUFPLElBQUEsK0JBQVcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxDQUFDLEdBQThCO1FBQ2pDLE9BQU8sSUFBQSwrQkFBVyxFQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNoRCxJQUFBLGVBQUcsRUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1osS0FBSyxLQUFLLFNBQVM7WUFDakIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDakQsQ0FBQyxDQUFDLEtBQUssQ0FDVixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FDTCxLQUF3QyxFQUN4QyxLQUFjO1FBRWQsT0FBTyxJQUFBLCtCQUFXLEVBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1RCxJQUFBLGVBQUcsRUFBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQy9ELENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUNULEtBQXdDLEVBQ3hDLEtBQWM7UUFFZCxPQUFPLElBQUEsK0JBQVcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxHQUE4QjtRQUNwQyxPQUFPLElBQUEsK0JBQVcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUNULEtBQXdDLEVBQ3hDLFNBQThCO1FBRTlCLE9BQU8sSUFBQSwrQkFBVyxFQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWMsQ0FDWixLQUF3QyxFQUN4QyxTQUE4QjtRQUU5QixPQUFPLElBQUEsK0JBQVcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGO0FBcEhELDRDQW9IQyJ9