full site update
This commit is contained in:
90
node_modules/unstorage/drivers/deno-kv.cjs
generated
vendored
Normal file
90
node_modules/unstorage/drivers/deno-kv.cjs
generated
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _index = require("./utils/index.cjs");
|
||||
const DRIVER_NAME = "deno-kv";
|
||||
module.exports = (0, _index.defineDriver)((opts = {}) => {
|
||||
const basePrefix = opts.base ? (0, _index.normalizeKey)(opts.base).split(":") : [];
|
||||
const r = (key = "") => [...basePrefix, ...key.split(":")].filter(Boolean);
|
||||
let _kv;
|
||||
const getKv = () => {
|
||||
if (_kv) {
|
||||
return _kv;
|
||||
}
|
||||
if (opts.openKv) {
|
||||
_kv = opts.openKv();
|
||||
} else {
|
||||
if (!globalThis.Deno) {
|
||||
throw (0, _index.createError)(DRIVER_NAME, "Missing global `Deno`. Are you running in Deno? (hint: use `deno-kv-node` driver for Node.js)");
|
||||
}
|
||||
if (!Deno.openKv) {
|
||||
throw (0, _index.createError)(DRIVER_NAME, "Missing `Deno.openKv`. Are you running Deno with --unstable-kv?");
|
||||
}
|
||||
_kv = Deno.openKv(opts.path);
|
||||
}
|
||||
return _kv;
|
||||
};
|
||||
return {
|
||||
name: DRIVER_NAME,
|
||||
getInstance() {
|
||||
return getKv();
|
||||
},
|
||||
async hasItem(key) {
|
||||
const kv = await getKv();
|
||||
const value = await kv.get(r(key));
|
||||
return !!value.value;
|
||||
},
|
||||
async getItem(key) {
|
||||
const kv = await getKv();
|
||||
const value = await kv.get(r(key));
|
||||
return value.value;
|
||||
},
|
||||
async getItemRaw(key) {
|
||||
const kv = await getKv();
|
||||
const value = await kv.get(r(key));
|
||||
return value.value;
|
||||
},
|
||||
async setItem(key, value) {
|
||||
const kv = await getKv();
|
||||
await kv.set(r(key), value);
|
||||
},
|
||||
async setItemRaw(key, value) {
|
||||
const kv = await getKv();
|
||||
await kv.set(r(key), value);
|
||||
},
|
||||
async removeItem(key) {
|
||||
const kv = await getKv();
|
||||
await kv.delete(r(key));
|
||||
},
|
||||
async getKeys(base) {
|
||||
const kv = await getKv();
|
||||
const keys = [];
|
||||
for await (const entry of kv.list({
|
||||
prefix: r(base)
|
||||
})) {
|
||||
keys.push((basePrefix.length > 0 ? entry.key.slice(basePrefix.length) : entry.key).join(":"));
|
||||
}
|
||||
return keys;
|
||||
},
|
||||
async clear(base) {
|
||||
const kv = await getKv();
|
||||
const batch = kv.atomic();
|
||||
for await (const entry of kv.list({
|
||||
prefix: r(base)
|
||||
})) {
|
||||
batch.delete(entry.key);
|
||||
}
|
||||
await batch.commit();
|
||||
},
|
||||
async dispose() {
|
||||
if (_kv) {
|
||||
const kv = await _kv;
|
||||
await kv.close();
|
||||
_kv = void 0;
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
Reference in New Issue
Block a user