A set of tools for working with Deno KV.
A set of APIs for dealing with the limitation of atomic commit sized in Deno KV, where currently only 10 operations operations can be part of a commit.
Similar to Deno.Kv#atomic()
, but will batch individual transactions across as
many atomic operations as necessary.
The commit()
method will return a promise which resolves with an array of
results based on how many batches the operations was broken up into.
A set of APIs for storing arbitrarily sized blobs in Deno KV. Currently Deno KV
has a limit of key values being 64k. The set()
function breaks down a blob
into chunks and manages sub-keys to store the complete value. The get()
function reverses that process.
Similar to Deno.Kv.prototype.set()
, in that it stores a blob value with an
associated key. In order to deal with the size limitations of values, set()
will transparently chunk up the blob into parts that can be handled by Deno KV.
The blob can be a byte ReadableStream
or array buffer like.
Similar to Deno.Kv.prototype.get()
, in that it retrieves a blob value based on
the provided key. If a previous blob value has been set with set()
, it will be
retrieved.
By default the value is resolved as a Uint8Array
but if the option stream
is
set to true
, then a byte ReadableStream
is provided to read out the blob.
Similar to Deno.Kv.prototype.delete()
, in that it deletes a blob key and value
form the data store. If a blob value isn't stored for the given key, it resolves
in a noop.
APIs for dealing with Deno KV keys.
Similar to Deno.Kv.prototype.list()
, in that is takes a selector, but instead
of returning an async iterator of matched values, it resolves with an array of
matching keys.
Resolves with an array of unique sub keys/prefixes for the provided prefix.
This is useful when storing keys and values in a hierarchical/tree view, where you are retrieving a list and you want to know all the unique descendents of a key in order to be able to enumerate them.