48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
|
|
var _utils = require("./utils/index.cjs");
|
|
var _idbKeyval = require("idb-keyval");
|
|
const DRIVER_NAME = "idb-keyval";
|
|
module.exports = (0, _utils.defineDriver)((opts = {}) => {
|
|
const base = opts.base && opts.base.length > 0 ? `${opts.base}:` : "";
|
|
const makeKey = key => base + key;
|
|
let customStore;
|
|
if (opts.dbName && opts.storeName) {
|
|
customStore = (0, _idbKeyval.createStore)(opts.dbName, opts.storeName);
|
|
}
|
|
return {
|
|
name: DRIVER_NAME,
|
|
options: opts,
|
|
async hasItem(key) {
|
|
const item = await (0, _idbKeyval.get)(makeKey(key), customStore);
|
|
return item === void 0 ? false : true;
|
|
},
|
|
async getItem(key) {
|
|
const item = await (0, _idbKeyval.get)(makeKey(key), customStore);
|
|
return item ?? null;
|
|
},
|
|
async getItemRaw(key) {
|
|
const item = await (0, _idbKeyval.get)(makeKey(key), customStore);
|
|
return item ?? null;
|
|
},
|
|
setItem(key, value) {
|
|
return (0, _idbKeyval.set)(makeKey(key), value, customStore);
|
|
},
|
|
setItemRaw(key, value) {
|
|
return (0, _idbKeyval.set)(makeKey(key), value, customStore);
|
|
},
|
|
removeItem(key) {
|
|
return (0, _idbKeyval.del)(makeKey(key), customStore);
|
|
},
|
|
getKeys() {
|
|
return (0, _idbKeyval.keys)(customStore);
|
|
},
|
|
clear() {
|
|
return (0, _idbKeyval.clear)(customStore);
|
|
}
|
|
};
|
|
}); |