This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-12-30
Channels
- # adventofcode (7)
- # announcements (9)
- # babashka (20)
- # beginners (182)
- # calva (9)
- # cider (20)
- # circleci (3)
- # clj-kondo (1)
- # clojure (269)
- # clojure-europe (2)
- # clojure-india (1)
- # clojure-italy (6)
- # clojure-nl (5)
- # clojure-uk (50)
- # clojurescript (56)
- # code-reviews (3)
- # core-async (174)
- # datomic (4)
- # duct (1)
- # emacs (3)
- # events (1)
- # fulcro (31)
- # graalvm (10)
- # graphql (8)
- # jobs (1)
- # joker (11)
- # juxt (7)
- # luminus (2)
- # malli (4)
- # off-topic (2)
- # overtone (1)
- # pathom (2)
- # re-frame (24)
- # shadow-cljs (42)
- # sql (1)
- # tools-deps (10)
I just found a sore point in the docs. http://book.fulcrologic.com/#_joins
@U5P29DSUS here’s the repo for the docs https://github.com/fulcrologic/fulcro-developer-guide/blob/master/DevelopersGuide.adoc
we would really appreciate a PR if you think something small is wrong/confusing the docs
Sounds good. I was looking for the repo but got lost I guess. It was pretty late last night 😉
yeah it’s a little hard to find
we probably should have a link to the repo at the top of the docs
Is it correct that fulcro will auto-norm a to-many only if the element passed in is a vector, and not any other seq?
i’m not entirely sure, i doubt fulcro was intentionally built to handle non-vector seqs in app state
but the algorithms may be able to process them anyway as a consequence
that said everything in app state should be serializable, and i wouldnt consider lazy seqs to be very serializable
short answer, i don’t know
It could use a note nearby in bold saying that a to many join requires a vector in the initial state. To be fair it does say it in the docs, but as I can attest this is easy to miss. Esp. when simple code like this comes up:
:initial-state (fn [_] {:code-form (map (partial comp/get-initial-state CodeForm)
[{:id 1 :title "Number1"
:code "nil"}
{:id 2 :title "Number2"
:code "nil2"}])})
The extension is installed correctly, and I call com.fulcrologic.fulcro.inspect.inspect-ws/install-ws
from the renderer process
@mping have you tried using the electron version instead of the extension? https://github.com/fulcrologic/fulcro-inspect#using-the-fulcro-3x-electron-app-alpha
i’ve been using it for react native development without any grief
/opt/fulcro-inspect-electron/fulcro-inspect-electron: error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory
Rebooting the machine is the only way I've discovered to get round that problem: "No app connected". (Perhaps ports are taken and never released).
So, the electron app is somewhat alpha, in that it only works with one app at a time, and can easily get confused. It is the only resort for mobile dev, but I don’t really recommend it over the chrome extension. It won’t take much work to make it more robust, but only have so much time…it just need to track conenctions with apps.
In terms of Linux compat: I don’t have the time to test all the builds. I’m just running an electron build and putting the resulting files up. The OSX version is tested by me…the others are user-tested.
lsof
is your friend as far as finding stuck processes that have allocated a port.
OH, one other thing: the elecron app is at a fixed port (not yet configurable), so if something is already on that port it will fail to allocate it.
Thanks, do you have any pointers for finding out why the extension doesn't work for me? I'm using fulcro to create an electron app
AFAIK the preload thing ensures the websocket is opened and the extension would connect there right?
The extension to chrome? No, that should just work on Chrome (the official google one). If you’re talking about the websocket one: The electron app version of Inspect runs a node process, which creates a socket. The version of http://socket.io MATTERS. Make sure you do NOT use the latest. The instructions say what to do. So it is one of 2 problems I would think:
1. The version of http://socket.io you have in package.json (or are getting) is incorrect.
2. The port Inspect is trying to allocate is used by something else (see lsof -inP
)