UNPKG

@creasource/reactive-idb

Version:

A reactive wrapper to indexedDb using Rxjs

67 lines 4.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReactiveIDBTransaction = void 0; const rxjs_1 = require("rxjs"); const reactive_idb_object_store_1 = require("./reactive-idb-object-store"); 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 reactive_idb_object_store_1.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 (0, rxjs_1.defer)(() => (0, rxjs_1.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); } } exports.ReactiveIDBTransaction = ReactiveIDBTransaction; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtaWRiLXRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9yZWFjdGl2ZS1pZGItdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQTZDO0FBTTdDLDJFQUFxRTtBQUVyRSxNQUFhLHNCQUFzQjtJQXNCakM7Ozs7O09BS0c7SUFDSCxZQUNtQixXQUEyQixFQUNuQyxFQUF1QjtRQURmLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUNuQyxPQUFFLEdBQUYsRUFBRSxDQUFxQjtJQUMvQixDQUFDO0lBOUJKOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBYUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLENBQ1QsSUFBWSxFQUNaLGNBQXlDO1FBQ3ZDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQU07S0FDM0I7UUFFRCxPQUFPLElBQUksa0RBQXNCLENBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUNsQyxJQUFJLEVBQ0osV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQ1YsSUFBWSxFQUNaLGNBQXlDO1FBQ3ZDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQU07S0FDM0I7UUFFRCxPQUFPLElBQUEsWUFBSyxFQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsU0FBRSxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUksSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsSUFBTyxFQUNQLFFBQXVFLEVBQ3ZFLE9BQTJDO1FBRTNDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsbUJBQW1CLENBQ2pCLElBQU8sRUFDUCxRQUF1RSxFQUN2RSxPQUF3QztRQUV4QyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNGO0FBckZELHdEQXFGQyJ9