Shout less in database wrapper

This commit is contained in:
arne 2025-11-21 13:15:00 +01:00
commit 54067c2103
2 changed files with 42 additions and 23 deletions

View file

@ -1,4 +1,5 @@
(ns computersandblues.lodestone.database)
(ns computersandblues.lodestone.database
(:refer-clojure :exclude [count get]))
(defonce +db+ (atom nil))
@ -72,15 +73,15 @@
request (.put store (clj->js object))]
(promisify request))))
(defn get!
([store-id k] (get! @+db+ store-id k))
(defn get
([store-id k] (get @+db+ store-id k))
([db store-id k]
(let [store (open-store db store-id "readonly")
request (.get store k)]
(promisify request))))
(defn get-all!
([store-id key-range] (get-all! @+db+ store-id key-range))
(defn get-all
([store-id key-range] (get-all @+db+ store-id key-range))
([db store-id key-range]
(let [store (open-store db store-id "readonly")
request (.getAll store key-range)]
@ -94,23 +95,23 @@
(promisify request))))
(defn delete!
([store-id k] (get! @+db+ store-id k))
([store-id k] (get @+db+ store-id k))
([db store-id k]
(let [store (open-store db store-id "readwrite")
request (.delete store k)]
(promisify request))))
(defn count!
([store-id] (count! @+db+ store-id))
(defn count
([store-id] (count @+db+ store-id))
([db store-id]
(let [store (open-store db store-id "readonly")
request (.count store)]
(promisify request))))
(defn open-cursor!
([store-id key-range] (open-cursor! @+db+ store-id key-range {:direction :asc}))
([store-id key-range opts] (open-cursor! @+db+ store-id key-range opts))
(defn open-cursor
([store-id key-range] (open-cursor @+db+ store-id key-range {:direction :asc}))
([store-id key-range opts] (open-cursor @+db+ store-id key-range opts))
([db store-id key-range {:keys [direction index]}]
(let [store (open-store db store-id "readonly")
key-range (if (= key-range ::all)
@ -161,13 +162,13 @@
(resolve @result)))))))))
(defn first-result [xform cursor-req]
(transduce-cursor (comp xform (take 1)) (fn [_ x] x) cursor-req))
(transduce-cursor (comp xform (take 1)) (fn [_ x] x) nil cursor-req))
(comment
(let [re (js/RegExp. "user" "i")]
(do (print "starting…" (js/Date.))
(-> (open-cursor! ::posts ::all)
(-> (open-cursor ::posts ::all)
(transduce-cursor (comp (filter #(re-find re (.-content %)))
(take 50)
(map #(js->clj % :keywordize-keys true))))