UNPKG

jsoniq

Version:

JSONiq implementation for JavaScript

54 lines (52 loc) 8.34 kB
"use strict"; class IndexedDBTransaction { constructor(db) { this.txs = []; this.db = db; } done() { return Promise.all(this.txs); } get(id) { return new Promise((resolve, reject) => { var segments = id.split(":"); var objectStoreName = segments[0]; var key = segments[1]; var tx = this.db.transaction(objectStoreName, "readonly"); var req = tx.objectStore(objectStoreName).get(key); req.onsuccess = () => { resolve(req.result); }; req.onerror = () => { reject(req.error); }; }); } put(id, item) { var segments = id.split(":"); var objectStoreName = segments[0]; var key = segments[1]; var tx = this.db.transaction(objectStoreName, "readwrite"); this.txs.push(new Promise((resolve, reject) => { var objectStore = tx.objectStore(objectStoreName); objectStore.put(item, !objectStore.keyPath && objectStore["autoIncrement"] !== true ? key : undefined); tx.oncomplete = event => { resolve(event); }; tx.onerror = event => { reject(event); }; })); return this; } remove(id) { var segments = id.split(":"); var objectStoreName = segments[0]; var key = segments[1]; var tx = this.db.transaction(objectStoreName, "readwrite"); this.txs.push(new Promise((resolve, reject) => { tx.objectStore(objectStoreName).delete(key); tx.oncomplete = event => { resolve(event); }; tx.onerror = event => { reject(event); }; })); return this; } } exports.default = IndexedDBTransaction; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdG9yZXMvaW5kZXhlZGRiL0luZGV4ZWREQlRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbIkluZGV4ZWREQlRyYW5zYWN0aW9uIiwiSW5kZXhlZERCVHJhbnNhY3Rpb24uY29uc3RydWN0b3IiLCJJbmRleGVkREJUcmFuc2FjdGlvbi5kb25lIiwiSW5kZXhlZERCVHJhbnNhY3Rpb24uZ2V0IiwiSW5kZXhlZERCVHJhbnNhY3Rpb24ucHV0IiwiSW5kZXhlZERCVHJhbnNhY3Rpb24ucmVtb3ZlIl0sIm1hcHBpbmdzIjoiO0FBRUE7SUFLSUEsWUFBWUEsRUFBZUE7UUFGbkJDLFFBQUdBLEdBQW1CQSxFQUFFQSxDQUFDQTtRQUc3QkEsSUFBSUEsQ0FBQ0EsRUFBRUEsR0FBR0EsRUFBRUEsQ0FBQ0E7SUFDakJBLENBQUNBO0lBRURELElBQUlBO1FBQ0FFLE1BQU1BLENBQUNBLE9BQU9BLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO0lBQ2pDQSxDQUFDQTtJQUVERixHQUFHQSxDQUFDQSxFQUFVQTtRQUNWRyxNQUFNQSxDQUFDQSxJQUFJQSxPQUFPQSxDQUFDQSxDQUFDQSxPQUFPQSxFQUFFQSxNQUFNQTtZQUMvQkEsSUFBSUEsUUFBUUEsR0FBR0EsRUFBRUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFDN0JBLElBQUlBLGVBQWVBLEdBQUdBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ2xDQSxJQUFJQSxHQUFHQSxHQUFHQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUN0QkEsSUFBSUEsRUFBRUEsR0FBR0EsSUFBSUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsZUFBZUEsRUFBRUEsVUFBVUEsQ0FBQ0EsQ0FBQ0E7WUFDMURBLElBQUlBLEdBQUdBLEdBQUlBLEVBQUVBLENBQUNBLFdBQVdBLENBQUNBLGVBQWVBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1lBQ3BEQSxHQUFHQSxDQUFDQSxTQUFTQSxHQUFHQTtnQkFDWkEsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7WUFDeEJBLENBQUNBLENBQUNBO1lBQ0ZBLEdBQUdBLENBQUNBLE9BQU9BLEdBQUdBO2dCQUNWQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQTtZQUN0QkEsQ0FBQ0EsQ0FBQ0E7UUFDTkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDUEEsQ0FBQ0E7SUFFREgsR0FBR0EsQ0FBQ0EsRUFBVUEsRUFBRUEsSUFBU0E7UUFDckJJLElBQUlBLFFBQVFBLEdBQUdBLEVBQUVBLENBQUNBLEtBQUtBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1FBQzdCQSxJQUFJQSxlQUFlQSxHQUFHQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNsQ0EsSUFBSUEsR0FBR0EsR0FBR0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdEJBLElBQUlBLEVBQUVBLEdBQUdBLElBQUlBLENBQUNBLEVBQUVBLENBQUNBLFdBQVdBLENBQUNBLGVBQWVBLEVBQUVBLFdBQVdBLENBQUNBLENBQUNBO1FBQzNEQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxPQUFPQSxDQUFDQSxDQUFDQSxPQUFPQSxFQUFFQSxNQUFNQTtZQUN0Q0EsSUFBSUEsV0FBV0EsR0FBR0EsRUFBRUEsQ0FBQ0EsV0FBV0EsQ0FBQ0EsZUFBZUEsQ0FBQ0EsQ0FBQ0E7WUFDbERBLFdBQVdBLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLEVBQUVBLENBQUNBLFdBQVdBLENBQUNBLE9BQU9BLElBQUlBLFdBQVdBLENBQUNBLGVBQWVBLENBQUNBLEtBQUtBLElBQUlBLEdBQUdBLEdBQUdBLEdBQUdBLFNBQVNBLENBQUNBLENBQUNBO1lBQ3ZHQSxFQUFFQSxDQUFDQSxVQUFVQSxHQUFHQSxLQUFLQSxNQUFNQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUM3Q0EsRUFBRUEsQ0FBQ0EsT0FBT0EsR0FBR0EsS0FBS0EsTUFBTUEsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDN0NBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ0pBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO0lBQ2hCQSxDQUFDQTtJQUVESixNQUFNQSxDQUFDQSxFQUFVQTtRQUNiSyxJQUFJQSxRQUFRQSxHQUFHQSxFQUFFQSxDQUFDQSxLQUFLQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTtRQUM3QkEsSUFBSUEsZUFBZUEsR0FBR0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDbENBLElBQUlBLEdBQUdBLEdBQUdBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ3RCQSxJQUFJQSxFQUFFQSxHQUFHQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFDQSxXQUFXQSxDQUFDQSxlQUFlQSxFQUFFQSxXQUFXQSxDQUFDQSxDQUFDQTtRQUMzREEsSUFBSUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsT0FBT0EsQ0FBQ0EsQ0FBQ0EsT0FBT0EsRUFBRUEsTUFBTUE7WUFDdENBLEVBQUVBLENBQUNBLFdBQVdBLENBQUNBLGVBQWVBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLENBQUNBO1lBQzVDQSxFQUFFQSxDQUFDQSxVQUFVQSxHQUFHQSxLQUFLQSxNQUFNQSxPQUFPQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUM3Q0EsRUFBRUEsQ0FBQ0EsT0FBT0EsR0FBR0EsS0FBS0EsTUFBTUEsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDN0NBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ0pBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBO0lBQ2hCQSxDQUFDQTtBQUNMTCxDQUFDQTt1Q0FBQSIsImZpbGUiOiJsaWIvc3RvcmVzL2luZGV4ZWRkYi9JbmRleGVkREJUcmFuc2FjdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElUcmFuc2FjdGlvbiB9IGZyb20gXCIuLi9JVHJhbnNhY3Rpb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSW5kZXhlZERCVHJhbnNhY3Rpb24gaW1wbGVtZW50cyBJVHJhbnNhY3Rpb24ge1xuXG4gICAgcHJpdmF0ZSBkYjogSURCRGF0YWJhc2U7XG4gICAgcHJpdmF0ZSB0eHM6IFByb21pc2U8YW55PltdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihkYjogSURCRGF0YWJhc2UpIHtcbiAgICAgICAgdGhpcy5kYiA9IGRiO1xuICAgIH1cblxuICAgIGRvbmUoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHRoaXMudHhzKTtcbiAgICB9XG5cbiAgICBnZXQoaWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB2YXIgc2VnbWVudHMgPSBpZC5zcGxpdChcIjpcIik7XG4gICAgICAgICAgICB2YXIgb2JqZWN0U3RvcmVOYW1lID0gc2VnbWVudHNbMF07XG4gICAgICAgICAgICB2YXIga2V5ID0gc2VnbWVudHNbMV07XG4gICAgICAgICAgICB2YXIgdHggPSB0aGlzLmRiLnRyYW5zYWN0aW9uKG9iamVjdFN0b3JlTmFtZSwgXCJyZWFkb25seVwiKTtcbiAgICAgICAgICAgIHZhciByZXEgPSAgdHgub2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKS5nZXQoa2V5KTtcbiAgICAgICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShyZXEucmVzdWx0KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXEub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZWplY3QocmVxLmVycm9yKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1dChpZDogc3RyaW5nLCBpdGVtOiBhbnkpOiBJVHJhbnNhY3Rpb24ge1xuICAgICAgICB2YXIgc2VnbWVudHMgPSBpZC5zcGxpdChcIjpcIik7XG4gICAgICAgIHZhciBvYmplY3RTdG9yZU5hbWUgPSBzZWdtZW50c1swXTtcbiAgICAgICAgdmFyIGtleSA9IHNlZ21lbnRzWzFdO1xuICAgICAgICB2YXIgdHggPSB0aGlzLmRiLnRyYW5zYWN0aW9uKG9iamVjdFN0b3JlTmFtZSwgXCJyZWFkd3JpdGVcIik7XG4gICAgICAgIHRoaXMudHhzLnB1c2gobmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gdHgub2JqZWN0U3RvcmUob2JqZWN0U3RvcmVOYW1lKTtcbiAgICAgICAgICAgIG9iamVjdFN0b3JlLnB1dChpdGVtLCAhb2JqZWN0U3RvcmUua2V5UGF0aCAmJiBvYmplY3RTdG9yZVtcImF1dG9JbmNyZW1lbnRcIl0gIT09IHRydWUgPyBrZXkgOiB1bmRlZmluZWQpO1xuICAgICAgICAgICAgdHgub25jb21wbGV0ZSA9IGV2ZW50ID0+IHsgcmVzb2x2ZShldmVudCk7IH07XG4gICAgICAgICAgICB0eC5vbmVycm9yID0gZXZlbnQgPT4geyByZWplY3QoZXZlbnQpOyB9O1xuICAgICAgICB9KSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHJlbW92ZShpZDogc3RyaW5nKTogSVRyYW5zYWN0aW9uIHtcbiAgICAgICAgdmFyIHNlZ21lbnRzID0gaWQuc3BsaXQoXCI6XCIpO1xuICAgICAgICB2YXIgb2JqZWN0U3RvcmVOYW1lID0gc2VnbWVudHNbMF07XG4gICAgICAgIHZhciBrZXkgPSBzZWdtZW50c1sxXTtcbiAgICAgICAgdmFyIHR4ID0gdGhpcy5kYi50cmFuc2FjdGlvbihvYmplY3RTdG9yZU5hbWUsIFwicmVhZHdyaXRlXCIpO1xuICAgICAgICB0aGlzLnR4cy5wdXNoKG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHR4Lm9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSkuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICB0eC5vbmNvbXBsZXRlID0gZXZlbnQgPT4geyByZXNvbHZlKGV2ZW50KTsgfTtcbiAgICAgICAgICAgIHR4Lm9uZXJyb3IgPSBldmVudCA9PiB7IHJlamVjdChldmVudCk7IH07XG4gICAgICAgIH0pKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9