From 4a432d28ccddfec8ee1e7473b6cd06deac8537f2 Mon Sep 17 00:00:00 2001 From: Anton Date: Tue, 28 Apr 2026 18:00:29 +0800 Subject: [PATCH] Add optional TTL parameter to Bucket::put() method --- src/JetStream/KeyValue/Bucket.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/JetStream/KeyValue/Bucket.php b/src/JetStream/KeyValue/Bucket.php index 8231a23..3759c9f 100644 --- a/src/JetStream/KeyValue/Bucket.php +++ b/src/JetStream/KeyValue/Bucket.php @@ -71,10 +71,19 @@ public function get(string $key, int $revision = 0): ?Entry * @param non-empty-string $key * @return non-negative-int */ - public function put(string $key, ?string $value = null): int + public function put(string $key, ?string $value = null, ?TimeSpan $ttl = null): int { + if ($ttl !== null) { + $headers = (new Headers())->with(Header\MsgTtl::Header, $ttl); + } else { + $headers = null; + } + return $this->js - ->publish($this->prefixedSubject($key), new Message($value)) + ->publish($this->prefixedSubject($key), new Message( + payload: $value, + headers: $headers, + )) ->seq ?? throw new \LogicException('Sequence expected on kv publish'); }