@creasource/reactive-idb
Version:
A reactive wrapper to indexedDb using Rxjs
67 lines • 4.26 kB
JavaScript
;
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