aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-06-02 22:50:17 +0200
committermetamuffin <metamuffin@disroot.org>2025-06-02 22:50:17 +0200
commit472916ef1381e1fd2ff021e47fa36a993b44033a (patch)
tree2cab757c8d58119406dcb9dcdb0074784b758483
parent5f6dfeada0158c815f0b7b474ec61c18db6af5db (diff)
downloadisda-472916ef1381e1fd2ff021e47fa36a993b44033a.tar
isda-472916ef1381e1fd2ff021e47fa36a993b44033a.tar.bz2
isda-472916ef1381e1fd2ff021e47fa36a993b44033a.tar.zst
support query for key existance
-rw-r--r--scripts/enqueue.ts2
-rw-r--r--src/worker_ws.rs10
2 files changed, 9 insertions, 3 deletions
diff --git a/scripts/enqueue.ts b/scripts/enqueue.ts
index d2b4729..0c99a79 100644
--- a/scripts/enqueue.ts
+++ b/scripts/enqueue.ts
@@ -9,7 +9,7 @@ async function run_enqueue(eqt: EnqueueTask) {
t: "query",
state: "complete",
kind: eqt.kind,
- data: eqt.filter ? { failed: eqt.filter } : null,
+ data: { failed: eqt.filter ?? null },
cookie: "for_enqueue"
}))
return
diff --git a/src/worker_ws.rs b/src/worker_ws.rs
index bf0bf7f..fa43721 100644
--- a/src/worker_ws.rs
+++ b/src/worker_ws.rs
@@ -265,8 +265,14 @@ impl State {
continue 'taskloop;
};
for (k, v) in &data {
- if cdata.get(k) != Some(v) {
- continue 'taskloop;
+ if v.is_null() {
+ if !cdata.contains_key(k) {
+ continue 'taskloop;
+ }
+ } else {
+ if cdata.get(k) != Some(v) {
+ continue 'taskloop;
+ }
}
}
}