UNPKG

1.49 kBJavaScriptView Raw
1// src/kv.ts
2function f(a) {
3 var s = (e, t) => `${e}__${t}`;
4 return {
5 get(e, t, r) {
6 return l(a, s(e, t), r);
7 },
8 put(e, t, r, n) {
9 return d(a, s(e, t), r, {toJSON: !0, ...n});
10 },
11 del(e, t) {
12 return u(a, s(e, t));
13 }
14 };
15}
16function l(a, s, e = "json") {
17 return typeof e == "string" || !e.metadata ? a.get(s, e) : a.getWithMetadata(s, e);
18}
19function d(a, s, e, t) {
20 let n = !(t && !!t.toJSON) && typeof e == "string" || e instanceof ArrayBuffer || e instanceof ReadableStream ? e : JSON.stringify(e);
21 return a.put(s, n, t).then(() => !0, () => !1);
22}
23function u(a, s) {
24 return a.delete(s).then(() => !0, () => !1);
25}
26async function* K(a, s) {
27 let {prefix: e, limit: t, cursor: r, metadata: n} = s || {};
28 for (; ; ) {
29 let o = await a.list({prefix: e, limit: t, cursor: r});
30 if (r = o.cursor, yield {
31 done: o.list_complete,
32 keys: n ? o.keys : o.keys.map((i) => i.name)
33 }, o.list_complete)
34 return;
35 }
36}
37async function M(a, s) {
38 let {prefix: e, metadata: t = !1, limit: r = 50, page: n = 1} = s || {}, o = K(a, {prefix: e, limit: r, metadata: t});
39 for await (let i of o) {
40 if (--n && i.done)
41 return [];
42 if (n === 0)
43 return i.keys;
44 }
45 return [];
46}
47async function m(a, s) {
48 let e, t = "";
49 for (; ; )
50 if (e = await s(t = a()), e == null)
51 return t;
52}
53export {
54 f as Database,
55 K as list,
56 M as paginate,
57 l as read,
58 u as remove,
59 m as until,
60 d as write
61};