UNPKG

@creasource/reactive-idb

Version:

A reactive wrapper to indexedDb using Rxjs

94 lines 6.23 kB
"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