Shout less in database wrapper
This commit is contained in:
parent
5eb75a3ac2
commit
54067c2103
2 changed files with 42 additions and 23 deletions
|
|
@ -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))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue