summaryrefslogtreecommitdiff
path: root/cli/tsc/dts/lib.deno.unstable.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tsc/dts/lib.deno.unstable.d.ts')
-rw-r--r--cli/tsc/dts/lib.deno.unstable.d.ts59
1 files changed, 59 insertions, 0 deletions
diff --git a/cli/tsc/dts/lib.deno.unstable.d.ts b/cli/tsc/dts/lib.deno.unstable.d.ts
index 27d3af4cd..8f11adfff 100644
--- a/cli/tsc/dts/lib.deno.unstable.d.ts
+++ b/cli/tsc/dts/lib.deno.unstable.d.ts
@@ -1915,6 +1915,14 @@ declare namespace Deno {
*/
delete(key: KvKey): this;
/**
+ * Add to the operation a mutation that enqueues a value into the queue
+ * if all checks pass during the commit.
+ */
+ enqueue(
+ value: unknown,
+ options?: { delay?: number; keysIfUndelivered?: Deno.KvKey[] },
+ ): this;
+ /**
* 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 {@linkcode
@@ -2088,6 +2096,57 @@ declare namespace Deno {
): KvListIterator<T>;
/**
+ * Add a value into the database queue to be delivered to the queue
+ * listener via {@linkcode Deno.Kv.listenQueue}.
+ *
+ * ```ts
+ * 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.
+ *
+ * ```ts
+ * 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.
+ *
+ * ```ts
+ * const db = await Deno.openKv();
+ * await db.enqueue("bar", { keysIfUndelivered: [["foo", "bar"]] });
+ * ```
+ */
+ enqueue(
+ value: unknown,
+ options?: { delay?: number; keysIfUndelivered?: Deno.KvKey[] },
+ ): Promise<KvCommitResult>;
+
+ /**
+ * Listen for queue values to be delivered from the database queue, which
+ * were enqueued with {@linkcode 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.
+ *
+ * ```ts
+ * const db = await Deno.openKv();
+ * db.listenQueue(async (msg: unknown) => {
+ * await db.set(["foo"], msg);
+ * });
+ * ```
+ */
+ listenQueue(
+ handler: (value: unknown) => Promise<void> | void,
+ ): Promise<void>;
+
+ /**
* Create a new {@linkcode 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