@wora/cache-persist
Version:
@wora Cache Persist
35 lines • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var idb_1 = require("idb");
function createIdbStorage(dbPromise, storeName) {
var db = null;
return {
getAllKeys: function () { return dbPromise.then(function (database) {
db = database;
return db.getAllKeys(storeName);
}); },
setItem: function (key, value) { return db.put(storeName, value, key); },
removeItem: function (key) { return db.delete(storeName, key); },
getItem: function (key) { return db.get(storeName, key); },
};
}
exports.createIdbStorage = createIdbStorage;
var IDBStorage = (function () {
function IDBStorage() {
}
IDBStorage.create = function (options) {
var _a = options.name, name = _a === void 0 ? 'cache' : _a, _b = options.storeNames, storeNames = _b === void 0 ? ['persist'] : _b, _c = options.version, version = _c === void 0 ? 1 : _c, _d = options.onUpgrade, onUpgrade = _d === void 0 ? function (_db, _oV, _nV, _t) { return undefined; } : _d;
var dbPromise = idb_1.openDB(name, version, {
upgrade: function (database, oldVersion, newVersion, transaction) {
if (newVersion === 1) {
storeNames.forEach(function (storeName) { return database.createObjectStore(storeName); });
}
onUpgrade(database, oldVersion, newVersion, transaction);
},
});
return storeNames.map(function (value) { return createIdbStorage(dbPromise, value); });
};
return IDBStorage;
}());
exports.IDBStorage = IDBStorage;
//# sourceMappingURL=idbstorage.js.map