This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-12-03
Channels
- # adventofcode (198)
- # aleph (10)
- # announcements (7)
- # aws (17)
- # beginners (353)
- # boot (1)
- # calva (13)
- # cider (18)
- # cljdoc (2)
- # cljs-dev (11)
- # cljsrn (1)
- # clojure (87)
- # clojure-austin (1)
- # clojure-brasil (2)
- # clojure-greece (13)
- # clojure-italy (18)
- # clojure-kc (2)
- # clojure-nl (9)
- # clojure-quebec (1)
- # clojure-russia (1)
- # clojure-spec (55)
- # clojure-uk (114)
- # clojurescript (18)
- # clojurex (14)
- # code-reviews (5)
- # core-async (17)
- # cursive (23)
- # data-science (1)
- # datomic (82)
- # docker (8)
- # duct (10)
- # emacs (8)
- # figwheel (3)
- # figwheel-main (5)
- # fulcro (13)
- # hyperfiddle (8)
- # jobs (1)
- # midje (1)
- # mount (1)
- # nrepl (2)
- # off-topic (72)
- # om (2)
- # pathom (10)
- # portkey (2)
- # re-frame (9)
- # reagent (3)
- # reitit (9)
- # ring-swagger (14)
- # schema (1)
- # shadow-cljs (91)
- # spacemacs (21)
- # sql (6)
- # tools-deps (19)
- # unrepl (9)
- # vim (41)
recommend :user/id
, since that ends up working better with pathom’s flatten/expand model of attributes
👍 8
(def db
(atom {:users [{:id 1}]}))
(pc/defresolver user-resolver [{:keys [database] :as env} {:keys [user/id]}]
{::pc/input #{:user/id}
::pc/output [:user/id]}
(let [user (first (filter #(= (:id %) id)) (:users database))]
{:user/id (:id user)}))
(def app-registry [user-resolver])
(def parser
(p/parallel-parser
{::p/env {::p/reader [p/map-reader
pc/parallel-reader
pc/open-ident-reader
p/env-placeholder-reader]
::p/placeholder-prefixes #{">"}}
::p/mutate pc/mutate-async
::p/plugins [(pc/connect-plugin {::pc/register app-registry})
p/error-handler-plugin
p/request-cache-plugin
p/trace-plugin]}))
(<!! (parser {:database @db} [{[:user/id 3] [:user/id]}])) => {[:user/id 3] #:user{:id 3}}
I'm not sure why my parser keeps returning what I give it (user 'database' only has one user).because you are trying to override a value that was already defined, it just read from the map
a resolver to rename itself is not a valid thing, because you would be given 2 different semantic properties under the same name (if that makes sense)
when you provide the ident, the context is {:user/id 3}
so when you request :user/id
it already in the context, its not gonna trigger any resolver, just return the value under the context
makes sense?
Yep, perfect, thanks!
Updated docs for placeholder nodes https://wilkerlucio.github.io/pathom/#_placeholders