This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-07-04
Channels
- # announcements (5)
- # beginners (56)
- # calva (2)
- # cider (30)
- # circleci (2)
- # cljsrn (90)
- # clojars (3)
- # clojure (18)
- # clojure-dev (9)
- # clojure-europe (3)
- # clojure-greece (14)
- # clojure-ireland (6)
- # clojure-italy (6)
- # clojure-nl (7)
- # clojure-norway (1)
- # clojure-spec (1)
- # clojure-sweden (3)
- # clojure-uk (14)
- # clojurescript (52)
- # cursive (5)
- # data-science (9)
- # datomic (3)
- # emacs (26)
- # expound (11)
- # figwheel (3)
- # figwheel-main (6)
- # fulcro (24)
- # garden (1)
- # graalvm (101)
- # liberator (1)
- # mount (1)
- # off-topic (1)
- # pathom (27)
- # portland-or (2)
- # reagent (13)
- # reitit (2)
- # ring (1)
- # shadow-cljs (10)
- # spacemacs (11)
- # sql (6)
hey there, just a general question regarding pathom. how much is that library tied to fulcro? as much as I love the concept behind pathom, I see no real advantage of fulcro over reagent+re-frame, and would rather stick to the later. the thing is that even documentation says We expect that most of our user base is made up of Om Next or Fulcro users
, which makes me worry that I will be forced at some point to leak in some fulcro specific ideas into my codebase.
I think that refers mostly to the query "system" (now called EQL) and related concepts (idents, joins etc.)
On your preference to re-frame+reagent I state a new rule based on Greenspun’s tenth rule: Any sufficiently complicated re-frame program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Fulcro. 😂
On your preference to re-frame+reagent I state a new rule based on Greenspun’s tenth rule: Any sufficiently complicated re-frame program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Fulcro. 😂
@souenzzo about the timeout, I suggest not using ::pc/key-process-timeout
, this is a last resource parser stop, just for real unexpected scenarios, to do timeout you better use core.async, if you use the async parser or the parallel parser, then you can use the core.async timeout for it, example:
(pc/defresolver res-with-timeout [_ _]
{::pc/output [:foo]}
(async/go
(let [timeout-ch (async/timeout 3000)
[ch res] (async/alts! [(async/go
(do-my-operation-here))
timeout-ch] :priority true)]
(if (= ch timeout-ch)
(throw (ex-info "Resolver timeout" {:timeout 3000}))
res))))
but this is less cool way to do it, better options are implementing as a resolver-transform (https://wilkerlucio.github.io/pathom/#connect-transform) or as plugin (https://wilkerlucio.github.io/pathom/#_plugins)
@michal as @thenonameguy said, not tied at all, it just provide extra helpers for fulcro users, but we are in the process of trying to get most of those out, with Fulcro 3 coming its been complicated to keep these references, so we want for the user to don't pull anything from fulcro unless you are actually using, so fulcro will be a provided dep probably
@wilkerlucio having dependency on fulcro as optional would be a great step forward 🙂 btw. I really enjoyed watching your presentations about pathom. very inspiring ones imho.
thanks 🙂
is it still true? can't find trace in fulcro inspect https://github.com/wilkerlucio/pathom-viz#fulcro-inspect-integration
it is, but you have to request the trace as part of the query
@souenzzo add the property :com.wsscode.pathom/trace
to your query
the way I do it most of the time is wrapping the fulcro network, pathom has a helper for that: https://cljdoc.org/d/com.wsscode/pathom/2.2.17/api/com.wsscode.pathom.fulcro.network#trace-remote
but notice this doesn't work for Fulcro 3, in case you are already using it (the helper thing)
F3 allows for a global eql transform that could handle it, bit that would affect all remotes…wrapping the new remote would also be relatively simple
works with any remote from Fulcro 2
I'm getting
network.cljs:118 Uncaught TypeError: Cannot read property 'cljs$core$IFn$_invoke$arity$1' of null
at network.cljs:118
at fulcro$client$network$progress_routine_STAR__$_progress_fn (network.cljc:287)
at goog.net.XhrIo.<anonymous> (network.cljc:330)
at goog.net.XhrIo.goog.events.EventTarget.fireListeners (eventtarget.js:285)
at Function.goog.events.EventTarget.dispatchEventInternal_ (eventtarget.js:383)
at goog.net.XhrIo.goog.events.EventTarget.dispatchEvent (eventtarget.js:196)
at goog.net.XhrIo.onProgressHandler_ (xhrio.js:904)
Full ex
Uncaught TypeError: Cannot read property 'cljs$core$IFn$_invoke$arity$1' of null
at network.cljs:118
at fulcro$client$network$progress_routine_STAR__$_progress_fn (network.cljc:287)
at network.cljc:275
at goog.net.XhrIo.<anonymous> (network.cljc:324)
at goog.net.XhrIo.goog.events.EventTarget.fireListeners (eventtarget.js:285)
at Function.goog.events.EventTarget.dispatchEventInternal_ (eventtarget.js:383)
at goog.net.XhrIo.goog.events.EventTarget.dispatchEvent (eventtarget.js:196)
at goog.net.XhrIo.onReadyStateChangeHelper_ (xhrio.js:873)
at goog.net.XhrIo.onReadyStateChangeEntryPoint_ (xhrio.js:818)
at goog.net.XhrIo.onReadyStateChange_ (xhrio.js:802)
(anonymous) @ network.cljs:118
fulcro$client$network$progress_routine_STAR__$_progress_fn @ network.cljc:287
(anonymous) @ network.cljc:275
(anonymous) @ network.cljc:324
goog.events.EventTarget.fireListeners @ eventtarget.js:285
goog.events.EventTarget.dispatchEventInternal_ @ eventtarget.js:383
goog.events.EventTarget.dispatchEvent @ eventtarget.js:196
goog.net.XhrIo.onReadyStateChangeHelper_ @ xhrio.js:873
goog.net.XhrIo.onReadyStateChangeEntryPoint_ @ xhrio.js:818
goog.net.XhrIo.onReadyStateChange_ @ xhrio.js:802
XMLHttpRequest.send (async)
goog.net.XhrIo.send @ xhrio.js:632
fulcro$client$network$xhrio_send @ network.cljc:30
(anonymous) @ network.cljc:334
fulcro$client$network$transmit @ network.cljc:103
(anonymous) @ network.cljs:116
fulcro$client$network$transmit @ network.cljc:103
(anonymous) @ client.cljs:187
fulcro$client$network$transmit @ network.cljc:103
fulcro$inspect$client$handle_devtool_message @ client.cljs:320
(anonymous) @ client.cljs:46
postMessage (async)
(anonymous) @ content-script.js:96