UNPKG

@creasource/reactive-idb

Version:

A reactive wrapper to indexedDb using Rxjs

63 lines 4.1 kB
import { defer, of } from 'rxjs'; import { ReactiveIDBObjectStore } from './reactive-idb-object-store'; export class ReactiveIDBTransaction { /** * Constructs a ReactiveIDBTransaction * * @param transaction The underlying IDBTransaction object * @param db The associated ReactiveIDBDatabase of this transaction */ constructor(transaction, db) { this.transaction = transaction; this.db = db; } /** * If the transaction was aborted, returns the error (a DOMException) providing the reason. */ get error() { return this.transaction.error; } /** * Returns the mode the transaction was created with ("readonly" or "readwrite"), or "versionchange" for an upgrade transaction. */ get mode() { return this.transaction.mode; } /** * Returns a list of the names of object stores in the transaction's scope. For an upgrade transaction this is all object stores in the database. */ get objectStoreNames() { return this.transaction.objectStoreNames; } /** * Aborts the transaction. All pending requests will fail with a "AbortError" DOMException and all changes made to the database will be reverted. */ abort() { this.transaction.abort(); } /** * Returns a ReactiveIDBObjectStore in the transaction's scope. */ objectStore(name, transformer = { serialize: (o) => o, deserialize: (v) => v, }) { return new ReactiveIDBObjectStore(this.transaction.objectStore(name), this, transformer); } /** * Returns a ReactiveIDBObjectStore in the transaction's scope. */ objectStore$(name, transformer = { serialize: (o) => o, deserialize: (v) => v, }) { return defer(() => of(this.objectStore(name, transformer))); } addEventListener(type, listener, options) { this.transaction.addEventListener(type, listener, options); } removeEventListener(type, listener, options) { this.transaction.removeEventListener(type, listener, options); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtaWRiLXRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZWFjdGl2ZS1pZGItdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFckUsTUFBTSxPQUFPLHNCQUFzQjtJQXNCakM7Ozs7O09BS0c7SUFDSCxZQUNtQixXQUEyQixFQUNuQyxFQUF1QjtRQURmLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUNuQyxPQUFFLEdBQUYsRUFBRSxDQUFxQjtJQUMvQixDQUFDO0lBOUJKOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBYUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLENBQ1QsSUFBWSxFQUNaLGNBQXlDO1FBQ3ZDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQU07S0FDM0I7UUFFRCxPQUFPLElBQUksc0JBQXNCLENBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUNsQyxJQUFJLEVBQ0osV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQ1YsSUFBWSxFQUNaLGNBQXlDO1FBQ3ZDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQU07S0FDM0I7UUFFRCxPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBSSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxnQkFBZ0IsQ0FDZCxJQUFPLEVBQ1AsUUFBdUUsRUFDdkUsT0FBMkM7UUFFM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxtQkFBbUIsQ0FDakIsSUFBTyxFQUNQLFFBQXVFLEVBQ3ZFLE9BQXdDO1FBRXhDLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0YifQ==