Currently redesert is composed of several sub-libraries that all do specific logic in redux's unidirectional data flow. While redesert can still continue to contain all of that logic combined into a single interface, the actual libraries can be destructured out of this so that developers can get have more granular power, use different redux cycle technologies, or have more control over dependency management. For example:
apiThunk can be extracted out
This will open up the possibility for a developer to use a different async action creator technology, like redux-sagas for example
The above is also a future project, but as long as it continues to dispatch the expected redesert api action types (suffixes), the rest of the redesert components should theoretically still be able to function
makeResourceReducers and makeResourceSelectors can be split out into its own package. Selectors and reducers should be colocated as selectors consume and traverse the exact same state tree that reducers output.
This will allow developers to define their own opinionated set of reducer generating functions for their applications and pass it into redesert to utilize its action type filtering logic.
As long as the developers' set of reducers have all cases for <PREFIX>__*__<SUFFIX>, the rest of the redesert components should still be able to auto dispatch + handle them
resourceApiActionTypesFactory can be split out for modularity/ability to version bump independently of redesert, but other than that it doesn't have to be moved out.
What is the expected behavior?
Ideally if done correctly and modularly, redesert should still be able to function even as different portions of it are swapped out. However, I'd like to do this before launching out a v1
Have you looked into https://lernajs.io/ at all? A lot of multi-package projects end up using something like this so that you're not stuck jumping across and keeping manual track of different dependencies.
Is this a feature request or a bug report?
What is the current behavior?
Currently
redesert
is composed of several sub-libraries that all do specific logic in redux's unidirectional data flow. Whileredesert
can still continue to contain all of that logic combined into a single interface, the actual libraries can be destructured out of this so that developers can get have more granular power, use different redux cycle technologies, or have more control over dependency management. For example:apiThunk
can be extracted outredux-sagas
for examplemakeResourceReducers
andmakeResourceSelectors
can be split out into its own package. Selectors and reducers should be colocated as selectors consume and traverse the exact same state tree that reducers output.redesert
to utilize its action type filtering logic.<PREFIX>__*__<SUFFIX>
, the rest of theredesert
components should still be able to auto dispatch + handle themresourceApiActionTypesFactory
can be split out for modularity/ability to version bump independently ofredesert
, but other than that it doesn't have to be moved out.What is the expected behavior?
redesert
should still be able to function even as different portions of it are swapped out. However, I'd like to do this before launching out a v1