-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
release the saga monitor store + selectors as a separate package #4
Comments
According to the README it will endup as a browser extension and could be integrated with Redux DevTools extension as well. As the extension is in a separate process, we'll have to stringify the data from the client side everytime to get it there. So there're 2 possible implementations:
|
The saga monitor uses its own internal store (not the app store). The monitor is connected to the saga middleware and receives monitor events directly from it (not via redux actions). But there maybe still an issue because monitor events may contain non serializable data (mainly functions & symbols) |
@yelouafi, yes, because the store is independent we are able to implement it on the extension side and just pass actions from the client side. We can serialize functions, symbols and other special types as Redux Extension does, just it will be slower. |
Basically, we'll pass a custom dispatch to const dispatch = (action) => { window.postMessage(action, '*') } So, Then on the extension side we're getting the action and do |
the action object is stored from here. We also compare by ref here to find sagas who took an action. If a unique id should be assigned to actions, I think it should be done on the redux-saga side because actually the saga monitor (residing in the extension process) will see 2 different objects (one in Another possible way (perhaps) is for the saga monitor to use the fact that |
If that would work, it would be awesome. We could add a parameter with a custom |
Releasing the non UI separately would benefit to to other redux devtools. the monitor's selectors could present normalized data into multiple forms (effects by parent/child relation, by action/reaction, task fork/join relation, channels inter-communication etc)
The text was updated successfully, but these errors were encountered: