Fork me on GitHub
#helix
<
2021-03-20
>
geraldodev14:03:28

{:npm-deps {react "16.13.1" react-refresh "0.8.1"}} these are deps.cljs of 0.0.14 and they conflict with package.json "react-dom": "^17.0.1", "react-refresh": "^0.9.0", "react": "^17.0.1". Shadow-cljs tells me that when I use react 17 and react-refresh 0.9.0 on my package.json

geraldodev14:03:40

By the way , are you using pathom ? I saw another library of you about EQL and maps.

lilactown17:03:14

@geraldodev there should be no issue despite the warning from shadow-cljs. helix and react 17 are compatible

lilactown17:03:34

we are starting to use pathom at work, yes. I am also very fascinated with it and EQL 🙂

Lucy Wang15:03:43

I've been waiting for some motivation to try pathom/eql for a while, so two (noob) questions: 1. Does introducing pathom/eql require any server-side changes? 2. Do they play well with re-frame?

lilactown21:03:37

you can implement pathom on the client but we decided to implement it in our API layer for simplicity

lilactown21:03:20

since we did that, we use re-frame to send POST requests with an EQL query and then update the app-db with the results. it works well

lilactown21:03:13

we went an extra step further and are putting the results into a datascript db in the app-db to do normalization for us. this is OK for short term, but long term I'm interested in replacing it with something like https://github.com/lilactown/autonormal

Lucy Wang00:03:42

Thanks! one more question, what is the major motivation of introducing pathom/eql into your system?

lilactown14:03:34

for us it was that we have a system of entities that have relationships to each other. we were creating API routes that exposed them, but then e.g. entityA related to entityB, I would need to fetch it from the A API and then the B API, which was slow. The other thing we would do is create ad-hoc API routes for each use case, that would return parts of entityA and entityB as was required by the UI, but that led to a proliferation of endpoints

lilactown14:03:30

pathom will allow us to declaratively select exactly what data we need from our entire system and load it on the front end, from one endpoint.

Lucy Wang06:03:26

That's a great explanation, thx!

lilactown17:03:29

my long term goal is to bring a Relay or apollo-graphql like library to helix, using EQL. although fulcro might beat me there lol