Skip to main content

Cloud

Tools for managing state, scheduling tasks, and interacting with key-value stores.

Eg Deno.openKv, Deno.cron

Classes

c
Deno.AtomicOperation

An operation on a Deno.Kv that can be performed atomically. Atomic operations do not auto-commit, and must be committed explicitly by calling the commit method.

c
Deno.Kv

A key-value database that can be used to store and retrieve data.

c
Deno.KvListIterator

An iterator over a range of data entries in a Deno.Kv.

c
Deno.KvU64

Wrapper type for 64-bit unsigned integers for use as values in a Deno.Kv.

Functions

f
Deno.cron

Create a cron job that will periodically execute the provided handler callback based on the specified schedule.

    f
    Deno.openKv

    Open a new Deno.Kv connection to persist data.

      Interfaces

      I
      Deno.AtomicCheck

      A check to perform as part of a Deno.AtomicOperation. The check will fail if the versionstamp for the key-value pair in the KV store does not match the given versionstamp. A check with a null versionstamp checks that the key-value pair does not currently exist in the KV store.

      I
      Deno.CronSchedule

      CronSchedule is the interface used for JSON format cron schedule.

      I
      Deno.KvCommitError
      No documentation available
      I
      Deno.KvCommitResult
      No documentation available
      I
      Deno.KvEntry

      A versioned pair of key and value in a Deno.Kv.

      I
      Deno.KvListOptions

      Options for listing key-value pairs in a Deno.Kv.

      Type Aliases

      T
      Deno.CronScheduleExpression

      CronScheduleExpression is used as the type of minute, hour, dayOfMonth, month, and dayOfWeek in CronSchedule.

        T
        Deno.KvConsistencyLevel

        Consistency level of a KV operation.

          T
          Deno.KvEntryMaybe

          An optional versioned pair of key and value in a Deno.Kv.

            T
            Deno.KvKey

            A key to be persisted in a Deno.Kv. A key is a sequence of Deno.KvKeyParts.

              T
              Deno.KvKeyPart

              A single part of a Deno.KvKey. Parts are ordered lexicographically, first by their type, and within a given type by their value.

                T
                Deno.KvListSelector

                A selector that selects the range of data returned by a list operation on a Deno.Kv.

                  T
                  Deno.KvMutation

                  A mutation to a key in a Deno.Kv. A mutation is a combination of a key, a value, and a type. The type determines how the mutation is applied to the key.


                    class Deno.AtomicOperation

                    unstable

                    An operation on a Deno.Kv that can be performed atomically. Atomic operations do not auto-commit, and must be committed explicitly by calling the commit method.

                    Atomic operations can be used to perform multiple mutations on the KV store in a single atomic transaction. They can also be used to perform conditional mutations by specifying one or more Deno.AtomicChecks that ensure that a mutation is only performed if the key-value pair in the KV has a specific versionstamp. If any of the checks fail, the entire operation will fail and no mutations will be made.

                    The ordering of mutations is guaranteed to be the same as the ordering of the mutations specified in the operation. Checks are performed before any mutations are performed. The ordering of checks is unobservable.

                    Atomic operations can be used to implement optimistic locking, where a mutation is only performed if the key-value pair in the KV store has not been modified since the last read. This can be done by specifying a check that ensures that the versionstamp of the key-value pair matches the versionstamp that was read. If the check fails, the mutation will not be performed and the operation will fail. One can then retry the read-modify- write operation in a loop until it succeeds.

                    The commit method of an atomic operation returns a value indicating whether checks passed and mutations were performed. If the operation failed because of a failed check, the return value will be a Deno.KvCommitError with an ok: false property. If the operation failed for any other reason (storage error, invalid value, etc.), an exception will be thrown. If the operation succeeded, the return value will be a Deno.KvCommitResult object with a ok: true property and the versionstamp of the value committed to KV.

                    Methods #

                    #check(...checks: AtomicCheck[]): this

                    Add to the operation a check that ensures that the versionstamp of the key-value pair in the KV store matches the given versionstamp. If the check fails, the entire operation will fail and no mutations will be performed during the commit.

                    Commit the operation to the KV store. Returns a value indicating whether checks passed and mutations were performed. If the operation failed because of a failed check, the return value will be a Deno.KvCommitError with an ok: false property. If the operation failed for any other reason (storage error, invalid value, etc.), an exception will be thrown. If the operation succeeded, the return value will be a Deno.KvCommitResult object with a ok: true property and the versionstamp of the value committed to KV.

                    If the commit returns ok: false, one may create a new atomic operation with updated checks and mutations and attempt to commit it again. See the note on optimistic locking in the documentation for Deno.AtomicOperation.

                    #delete(key: KvKey): this

                    Add to the operation a mutation that deletes the specified key if all checks pass during the commit.

                    #enqueue(
                    value: unknown,
                    options?: { delay?: number; keysIfUndelivered?: KvKey[]; backoffSchedule?: number[]; },
                    ): this

                    Add to the operation a mutation that enqueues a value into the queue if all checks pass during the commit.

                    #max(
                    key: KvKey,
                    n: bigint,
                    ): this

                    Shortcut for creating a max mutation. This method wraps n in a Deno.KvU64, so the value of n must be in the range [0, 2^64-1].

                    #min(
                    key: KvKey,
                    n: bigint,
                    ): this

                    Shortcut for creating a min mutation. This method wraps n in a Deno.KvU64, so the value of n must be in the range [0, 2^64-1].

                    #mutate(...mutations: KvMutation[]): this

                    Add to the operation a mutation that performs the specified mutation on the specified key if all checks pass during the commit. The types and semantics of all available mutations are described in the documentation for Deno.KvMutation.

                    #set(
                    key: KvKey,
                    value: unknown,
                    options?: { expireIn?: number; },
                    ): this

                    Add to the operation a mutation that sets the value of the specified key to the specified value if all checks pass during the commit.

                    Optionally an expireIn option can be specified to set a time-to-live (TTL) for the key. The TTL is specified in milliseconds, and the key will be deleted from the database at earliest after the specified number of milliseconds have elapsed. Once the specified duration has passed, the key may still be visible for some additional time. If the expireIn option is not specified, the key will not expire.

                    #sum(
                    key: KvKey,
                    n: bigint,
                    ): this

                    Shortcut for creating a sum mutation. This method wraps n in a Deno.KvU64, so the value of n must be in the range [0, 2^64-1].


                    class Deno.Kv

                    implements Disposable
                    unstable

                    A key-value database that can be used to store and retrieve data.

                    Data is stored as key-value pairs, where the key is a Deno.KvKey and the value is an arbitrary structured-serializable JavaScript value. Keys are ordered lexicographically as described in the documentation for Deno.KvKey. Keys are unique within a database, and the last value set for a given key is the one that is returned when reading the key. Keys can be deleted from the database, in which case they will no longer be returned when reading keys.

                    Values can be any structured-serializable JavaScript value (objects, arrays, strings, numbers, etc.). The special value Deno.KvU64 can be used to store 64-bit unsigned integers in the database. This special value can not be nested within other objects or arrays. In addition to the regular database mutation operations, the unsigned 64-bit integer value also supports sum, max, and min mutations.

                    Keys are versioned on write by assigning the key an ever-increasing "versionstamp". The versionstamp represents the version of a key-value pair in the database at some point in time, and can be used to perform transactional operations on the database without requiring any locking. This is enabled by atomic operations, which can have conditions that ensure that the operation only succeeds if the versionstamp of the key-value pair matches an expected versionstamp.

                    Keys have a maximum length of 2048 bytes after serialization. Values have a maximum length of 64 KiB after serialization. Serialization of both keys and values is somewhat opaque, but one can usually assume that the serialization of any value is about the same length as the resulting string of a JSON serialization of that same value. If theses limits are exceeded, an exception will be thrown.

                    Methods #

                    Create a new Deno.AtomicOperation object which can be used to perform an atomic transaction on the database. This does not perform any operations on the database - the atomic transaction must be committed explicitly using the Deno.AtomicOperation.commit method once all checks and mutations have been added to the operation.

                    #close(): void

                    Close the database connection. This will prevent any further operations from being performed on the database, and interrupt any in-flight operations immediately.

                    Get a symbol that represents the versionstamp of the current atomic operation. This symbol can be used as the last part of a key in .set(), both directly on the Kv object and on an AtomicOperation object created from this Kv instance.

                    #delete(key: KvKey): Promise<void>

                    Delete the value for the given key from the database. If no value exists for the key, this operation is a no-op.

                    const db = await Deno.openKv();
                    await db.delete(["foo"]);
                    
                    #enqueue(
                    value: unknown,
                    options?: { delay?: number; keysIfUndelivered?: KvKey[]; backoffSchedule?: number[]; },
                    ): Promise<KvCommitResult>

                    Add a value into the database queue to be delivered to the queue listener via Deno.Kv.listenQueue.

                    const db = await Deno.openKv();
                    await db.enqueue("bar");
                    

                    The delay option can be used to specify the delay (in milliseconds) of the value delivery. The default delay is 0, which means immediate delivery.

                    const db = await Deno.openKv();
                    await db.enqueue("bar", { delay: 60000 });
                    

                    The keysIfUndelivered option can be used to specify the keys to be set if the value is not successfully delivered to the queue listener after several attempts. The values are set to the value of the queued message.

                    The backoffSchedule option can be used to specify the retry policy for failed message delivery. Each element in the array represents the number of milliseconds to wait before retrying the delivery. For example, [1000, 5000, 10000] means that a failed delivery will be retried at most 3 times, with 1 second, 5 seconds, and 10 seconds delay between each retry.

                    const db = await Deno.openKv();
                    await db.enqueue("bar", {
                      keysIfUndelivered: [["foo", "bar"]],
                      backoffSchedule: [1000, 5000, 10000],
                    });
                    
                    #get<T = unknown>(
                    key: KvKey,
                    options?: { consistency?: KvConsistencyLevel; },
                    ): Promise<KvEntryMaybe<T>>

                    Retrieve the value and versionstamp for the given key from the database in the form of a Deno.KvEntryMaybe. If no value exists for the key, the returned entry will have a null value and versionstamp.

                    const db = await Deno.openKv();
                    const result = await db.get(["foo"]);
                    result.key; // ["foo"]
                    result.value; // "bar"
                    result.versionstamp; // "00000000000000010000"
                    

                    The consistency option can be used to specify the consistency level for the read operation. The default consistency level is "strong". Some use cases can benefit from using a weaker consistency level. For more information on consistency levels, see the documentation for Deno.KvConsistencyLevel.

                    #getMany<T extends readonly unknown[]>(
                    keys: readonly [...[K in keyof T]: KvKey],
                    options?: { consistency?: KvConsistencyLevel; },
                    ): Promise<[K in keyof T]: KvEntryMaybe<T[K]>>

                    Retrieve multiple values and versionstamps from the database in the form of an array of Deno.KvEntryMaybe objects. The returned array will have the same length as the keys array, and the entries will be in the same order as the keys. If no value exists for a given key, the returned entry will have a null value and versionstamp.

                    const db = await Deno.openKv();
                    const result = await db.getMany([["foo"], ["baz"]]);
                    result[0].key; // ["foo"]
                    result[0].value; // "bar"
                    result[0].versionstamp; // "00000000000000010000"
                    result[1].key; // ["baz"]
                    result[1].value; // null
                    result[1].versionstamp; // null
                    

                    The consistency option can be used to specify the consistency level for the read operation. The default consistency level is "strong". Some use cases can benefit from using a weaker consistency level. For more information on consistency levels, see the documentation for Deno.KvConsistencyLevel.

                    #list<T = unknown>(
                    selector: KvListSelector,
                    options?: KvListOptions,
                    ): KvListIterator<T>

                    Retrieve a list of keys in the database. The returned list is an Deno.KvListIterator which can be used to iterate over the entries in the database.

                    Each list operation must specify a selector which is used to specify the range of keys to return. The selector can either be a prefix selector, or a range selector:

                    • A prefix selector selects all keys that start with the given prefix of key parts. For example, the selector ["users"] will select all keys that start with the prefix ["users"], such as ["users", "alice"] and ["users", "bob"]. Note that you can not partially match a key part, so the selector ["users", "a"] will not match the key ["users", "alice"]. A prefix selector may specify a start key that is used to skip over keys that are lexicographically less than the start key.
                    • A range selector selects all keys that are lexicographically between the given start and end keys (including the start, and excluding the end). For example, the selector ["users", "a"], ["users", "n"] will select all keys that start with the prefix ["users"] and have a second key part that is lexicographically between a and n, such as ["users", "alice"], ["users", "bob"], and ["users", "mike"], but not ["users", "noa"] or ["users", "zoe"].
                    const db = await Deno.openKv();
                    const entries = db.list({ prefix: ["users"] });
                    for await (const entry of entries) {
                      entry.key; // ["users", "alice"]
                      entry.value; // { name: "Alice" }
                      entry.versionstamp; // "00000000000000010000"
                    }
                    

                    The options argument can be used to specify additional options for the list operation. See the documentation for Deno.KvListOptions for more information.

                    #listenQueue(handler: (value: any) => Promise<void> | void): Promise<void>

                    Listen for queue values to be delivered from the database queue, which were enqueued with Deno.Kv.enqueue. The provided handler callback is invoked on every dequeued value. A failed callback invocation is automatically retried multiple times until it succeeds or until the maximum number of retries is reached.

                    const db = await Deno.openKv();
                    db.listenQueue(async (msg: unknown) => {
                      await db.set(["foo"], msg);
                    });
                    
                    #set(
                    key: KvKey,
                    value: unknown,
                    options?: { expireIn?: number; },
                    ): Promise<KvCommitResult>

                    Set the value for the given key in the database. If a value already exists for the key, it will be overwritten.

                    const db = await Deno.openKv();
                    await db.set(["foo"], "bar");
                    

                    Optionally an expireIn option can be specified to set a time-to-live (TTL) for the key. The TTL is specified in milliseconds, and the key will be deleted from the database at earliest after the specified number of milliseconds have elapsed. Once the specified duration has passed, the key may still be visible for some additional time. If the expireIn option is not specified, the key will not expire.

                    #watch<T extends readonly unknown[]>(
                    keys: readonly [...[K in keyof T]: KvKey],
                    options?: { raw?: boolean; },
                    ): ReadableStream<[K in keyof T]: KvEntryMaybe<T[K]>>

                    Watch for changes to the given keys in the database. The returned stream is a ReadableStream that emits a new value whenever any of the watched keys change their versionstamp. The emitted value is an array of Deno.KvEntryMaybe objects, with the same length and order as the keys array. If no value exists for a given key, the returned entry will have a null value and versionstamp.

                    The returned stream does not return every single intermediate state of the watched keys, but rather only keeps you up to date with the latest state of the keys. This means that if a key is modified multiple times quickly, you may not receive a notification for every single change, but rather only the latest state of the key.

                    const db = await Deno.openKv();
                    
                    const stream = db.watch([["foo"], ["bar"]]);
                    for await (const entries of stream) {
                      entries[0].key; // ["foo"]
                      entries[0].value; // "bar"
                      entries[0].versionstamp; // "00000000000000010000"
                      entries[1].key; // ["bar"]
                      entries[1].value; // null
                      entries[1].versionstamp; // null
                    }
                    

                    The options argument can be used to specify additional options for the watch operation. The raw option can be used to specify whether a new value should be emitted whenever a mutation occurs on any of the watched keys (even if the value of the key does not change, such as deleting a deleted key), or only when entries have observably changed in some way. When raw: true is used, it is possible for the stream to occasionally emit values even if no mutations have occurred on any of the watched keys. The default value for this option is false.


                    class Deno.KvListIterator

                    implements AsyncIterableIterator<KvEntry<T>>
                    unstable

                    An iterator over a range of data entries in a Deno.Kv.

                    The cursor getter returns the cursor that can be used to resume the iteration from the current position in the future.

                    Type Parameters #

                    #T

                    Properties #

                    #cursor: string
                    readonly

                    Returns the cursor of the current position in the iteration. This cursor can be used to resume the iteration from the current position in the future by passing it to the cursor option of the list method.

                    Methods #

                    #[Symbol.asyncIterator](): AsyncIterableIterator<KvEntry<T>>
                    #next(): Promise<IteratorResult<KvEntry<T>, undefined>>

                    class Deno.KvU64

                    unstable

                    Wrapper type for 64-bit unsigned integers for use as values in a Deno.Kv.

                    Constructors #

                    #KvU64(value: bigint)
                    new

                    Create a new KvU64 instance from the given bigint value. If the value is signed or greater than 64-bits, an error will be thrown.

                    Properties #

                    #value: bigint
                    readonly

                    The value of this unsigned 64-bit integer, represented as a bigint.


                    function Deno.cron

                    unstable

                    Overload 1

                    #cron(
                    name: string,
                    schedule: string | CronSchedule,
                    handler: () => Promise<void> | void,
                    ): Promise<void>

                    Create a cron job that will periodically execute the provided handler callback based on the specified schedule.

                    Deno.cron("sample cron", "20 * * * *", () => {
                      console.log("cron job executed");
                    });
                    
                    Deno.cron("sample cron", { hour: { every: 6 } }, () => {
                      console.log("cron job executed");
                    });
                    

                    schedule can be a string in the Unix cron format or in JSON format as specified by interface CronSchedule, where time is specified using UTC time zone.

                    Parameters #

                    #name: string
                    #schedule: string | CronSchedule
                    #handler: () => Promise<void> | void

                    Return Type #

                    Promise<void>

                    Overload 2

                    #cron(
                    name: string,
                    schedule: string | CronSchedule,
                    options: { backoffSchedule?: number[]; signal?: AbortSignal; },
                    handler: () => Promise<void> | void,
                    ): Promise<void>

                    Create a cron job that will periodically execute the provided handler callback based on the specified schedule.

                    Deno.cron("sample cron", "20 * * * *", {
                      backoffSchedule: [10, 20]
                    }, () => {
                      console.log("cron job executed");
                    });
                    

                    schedule can be a string in the Unix cron format or in JSON format as specified by interface CronSchedule, where time is specified using UTC time zone.

                    backoffSchedule option can be used to specify the retry policy for failed executions. Each element in the array represents the number of milliseconds to wait before retrying the execution. For example, [1000, 5000, 10000] means that a failed execution will be retried at most 3 times, with 1 second, 5 seconds, and 10 seconds delay between each retry. There is a limit of 5 retries and a maximum interval of 1 hour (3600000 milliseconds).

                    Parameters #

                    #name: string
                    #schedule: string | CronSchedule
                    #options: { backoffSchedule?: number[]; signal?: AbortSignal; }
                    #handler: () => Promise<void> | void

                    Return Type #

                    Promise<void>

                    function Deno.openKv

                    unstable
                    allow-read
                    allow-write
                    #openKv(path?: string): Promise<Kv>

                    Open a new Deno.Kv connection to persist data.

                    When a path is provided, the database will be persisted to disk at that path. Read and write access to the file is required.

                    When no path is provided, the database will be opened in a default path for the current script. This location is persistent across script runs and is keyed on the origin storage key (the same key that is used to determine localStorage persistence). More information about the origin storage key can be found in the Deno Manual.

                    Parameters #

                    #path: string
                    optional

                    Return Type #

                    Promise<Kv>

                    interface Deno.AtomicCheck

                    unstable

                    A check to perform as part of a Deno.AtomicOperation. The check will fail if the versionstamp for the key-value pair in the KV store does not match the given versionstamp. A check with a null versionstamp checks that the key-value pair does not currently exist in the KV store.

                    Properties #

                    #versionstamp: string | null




                    interface Deno.KvEntry

                    unstable

                    A versioned pair of key and value in a Deno.Kv.

                    The versionstamp is a string that represents the current version of the key-value pair. It can be used to perform atomic operations on the KV store by passing it to the check method of a Deno.AtomicOperation.

                    Type Parameters #

                    #T

                    Properties #


                    interface Deno.KvListOptions

                    unstable

                    Options for listing key-value pairs in a Deno.Kv.

                    Properties #

                    #limit: number
                    optional

                    The maximum number of key-value pairs to return. If not specified, all matching key-value pairs will be returned.

                    #cursor: string
                    optional

                    The cursor to resume the iteration from. If not specified, the iteration will start from the beginning.

                    #reverse: boolean
                    optional

                    Whether to reverse the order of the returned key-value pairs. If not specified, the order will be ascending from the start of the range as per the lexicographical ordering of the keys. If true, the order will be descending from the end of the range.

                    The default value is false.

                    The consistency level of the list operation. The default consistency level is "strong". Some use cases can benefit from using a weaker consistency level. For more information on consistency levels, see the documentation for Deno.KvConsistencyLevel.

                    List operations are performed in batches (in sizes specified by the batchSize option). The consistency level of the list operation is applied to each batch individually. This means that while each batch is guaranteed to be consistent within itself, the entire list operation may not be consistent across batches because a mutation may be applied to a key-value pair between batches, in a batch that has already been returned by the list operation.

                    #batchSize: number
                    optional

                    The size of the batches in which the list operation is performed. Larger or smaller batch sizes may positively or negatively affect the performance of a list operation depending on the specific use case and iteration behavior. Slow iterating queries may benefit from using a smaller batch size for increased overall consistency, while fast iterating queries may benefit from using a larger batch size for better performance.

                    The default batch size is equal to the limit option, or 100 if this is unset. The maximum value for this option is 500. Larger values will be clamped.


                    type alias Deno.CronScheduleExpression

                    unstable

                    CronScheduleExpression is used as the type of minute, hour, dayOfMonth, month, and dayOfWeek in CronSchedule.

                    Definition #

                    number
                    | { exact: number | number[]; }
                    | { start?: number; end?: number; every?: number; }

                    type alias Deno.KvConsistencyLevel

                    unstable

                    Consistency level of a KV operation.

                    • strong - This operation must be strongly-consistent.
                    • eventual - Eventually-consistent behavior is allowed.

                    Definition #

                    "strong" | "eventual"

                    type alias Deno.KvEntryMaybe

                    unstable

                    An optional versioned pair of key and value in a Deno.Kv.

                    This is the same as a KvEntry, but the value and versionstamp fields may be null if no value exists for the given key in the KV store.

                    Type Parameters #

                    #T

                    Definition #

                    KvEntry<T> | { key: KvKey; value: null; versionstamp: null; }

                    type alias Deno.KvKey

                    unstable

                    A key to be persisted in a Deno.Kv. A key is a sequence of Deno.KvKeyParts.

                    Keys are ordered lexicographically by their parts. The first part is the most significant, and the last part is the least significant. The order of the parts is determined by both the type and the value of the part. The relative significance of the types can be found in documentation for the Deno.KvKeyPart type.

                    Keys have a maximum size of 2048 bytes serialized. If the size of the key exceeds this limit, an error will be thrown on the operation that this key was passed to.

                    Definition #

                    readonly KvKeyPart[]

                    type alias Deno.KvKeyPart

                    unstable

                    A single part of a Deno.KvKey. Parts are ordered lexicographically, first by their type, and within a given type by their value.

                    The ordering of types is as follows:

                    1. Uint8Array
                    2. string
                    3. number
                    4. bigint
                    5. boolean

                    Within a given type, the ordering is as follows:

                    • Uint8Array is ordered by the byte ordering of the array
                    • string is ordered by the byte ordering of the UTF-8 encoding of the string
                    • number is ordered following this pattern: -NaN < -Infinity < -100.0 < -1.0 < -0.5 < -0.0 < 0.0 < 0.5 < 1.0 < 100.0 < Infinity < NaN
                    • bigint is ordered by mathematical ordering, with the largest negative number being the least first value, and the largest positive number being the last value
                    • boolean is ordered by false < true

                    This means that the part 1.0 (a number) is ordered before the part 2.0 (also a number), but is greater than the part 0n (a bigint), because 1.0 is a number and 0n is a bigint, and type ordering has precedence over the ordering of values within a type.

                    Definition #

                    Uint8Array
                    | string
                    | number
                    | bigint
                    | boolean
                    | symbol

                    type alias Deno.KvListSelector

                    unstable

                    A selector that selects the range of data returned by a list operation on a Deno.Kv.

                    The selector can either be a prefix selector or a range selector. A prefix selector selects all keys that start with the given prefix (optionally starting at a given key). A range selector selects all keys that are lexicographically between the given start and end keys.

                    Definition #

                    { prefix: KvKey; }
                    | { prefix: KvKey; start: KvKey; }
                    | { prefix: KvKey; end: KvKey; }
                    | { start: KvKey; end: KvKey; }

                    type alias Deno.KvMutation

                    unstable

                    A mutation to a key in a Deno.Kv. A mutation is a combination of a key, a value, and a type. The type determines how the mutation is applied to the key.

                    • set - Sets the value of the key to the given value, overwriting any existing value. Optionally an expireIn option can be specified to set a time-to-live (TTL) for the key. The TTL is specified in milliseconds, and the key will be deleted from the database at earliest after the specified number of milliseconds have elapsed. Once the specified duration has passed, the key may still be visible for some additional time. If the expireIn option is not specified, the key will not expire.
                    • delete - Deletes the key from the database. The mutation is a no-op if the key does not exist.
                    • sum - Adds the given value to the existing value of the key. Both the value specified in the mutation, and any existing value must be of type Deno.KvU64. If the key does not exist, the value is set to the given value (summed with 0). If the result of the sum overflows an unsigned 64-bit integer, the result is wrapped around.
                    • max - Sets the value of the key to the maximum of the existing value and the given value. Both the value specified in the mutation, and any existing value must be of type Deno.KvU64. If the key does not exist, the value is set to the given value.
                    • min - Sets the value of the key to the minimum of the existing value and the given value. Both the value specified in the mutation, and any existing value must be of type Deno.KvU64. If the key does not exist, the value is set to the given value.

                    Definition #

                    { key: KvKey; } & (
                    { type: "set"; value: unknown; expireIn?: number; }
                    | { type: "delete"; }
                    | { type: "sum"; value: KvU64; }
                    | { type: "max"; value: KvU64; }
                    | { type: "min"; value: KvU64; }
                    )

                    Did you find what you needed?

                    Privacy policy