This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-06-24
Channels
- # announcements (39)
- # aws (4)
- # babashka (18)
- # beginners (32)
- # biff (10)
- # calva (22)
- # clj-kondo (11)
- # clj-on-windows (2)
- # cljs-dev (20)
- # clojure (31)
- # clojure-europe (130)
- # clojure-norway (21)
- # clojure-spec (24)
- # clojure-uk (17)
- # clojured (2)
- # clojurescript (6)
- # conjure (1)
- # core-async (5)
- # cursive (11)
- # datalevin (1)
- # datomic (9)
- # emacs (24)
- # figwheel-main (42)
- # fulcro (6)
- # gratitude (6)
- # honeysql (8)
- # juxt (16)
- # kaocha (6)
- # lsp (235)
- # malli (2)
- # nbb (7)
- # off-topic (23)
- # other-languages (24)
- # pedestal (7)
- # reitit (6)
- # sci (1)
- # shadow-cljs (21)
- # tools-build (22)
- # tools-deps (57)
- # vim (24)
TIL: compojure.core/wrap-routes
- kjør en haug med middlewares etter path-matching. Hvis man gjør f.eks (-> my-routes (wrap-auth))
hvor wrap-auth svarer med autentiseringsfeil, får du den uansett om requestet matcher en av pathene i my-routes eller ei. Hvis du i stedet gjør (-> my-routes (compojure.core/wrap-routes wrap-auth))
så kalles wrap-auth bare hvis en av handlerene i my-routes returnerte en respons.
Jeg måtte se litt på implementasjonen av den der. Den samler faktisk opp middleware-funksjonene i en navngitt key på requesten, som det så er routeren sin jobb å kalle på når det har gjort sitt.
ja riktig, compojure.core/GET og POST og alle disse gjør something something for å samarbeide?
Akkurat i tide til lunsjen, en ny episode av Zombie CLJ! https://www.zombieclj.no/s02e17.html 😄
Forøvrig, two for two med Betting your company on Clojure. Både på Javazone og NDC 🙂
Unfold er jo en omvendt reduce. Så, hvis du har en event som lager flere, (Stuart Sierra kaller dem konsekvenser) kan man bruke unfold til å generere dem.
Dere hadde jo i dagens episode at en event forårsaket flere events, det høres ut som en unfold for meg
clj-commons/useful har en implementasjon, Clojure 1.11 har iterations som er enda mer generell
Svært anvendelig ved konsumering av paginerte resultater:
(defn scroll [search-config previous-result]
(let [hits (count (get-in previous-result [:hits :hits]))]
(when (= hits scroll-size)
(let [scroll-id (:_scroll_id previous-result)
result (run-request! (->scroll-request search-config scroll-id window-length))]
[result result]))))
(useful/unfold (partial scroll search-config) result)
Har du en eksempel-repl-invokering av unfold
- som også har output?
Jeg ble nysgjerrig 😄
https://github.com/clj-commons/useful/blob/master/src/flatland/useful/seq.clj#L141 er kanskje ikke akkurat det du etterspør, men likevel.