[Doppins] Upgrade dependency redux-saga to 1.0.2 #74
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi!
A new version was just released of
redux-saga, so Doppinshas upgraded your project's dependency ranges.
Make sure that it doesn't break anything, and happy merging!
Upgraded redux-saga from
0.16.0to0.16.1Changelog:
Version 1.0.0-beta.2
This release is highly motivated by our 2 new core members
@restrry&@shinima. They have put a lot of work into creating PRs & helping others with their issues.We've recently extracted some modular packages, you can see
@redux-saga`/deferred`,@redux-saga/delay-p,@redux-saga`/is` &@redux-saga/symbols. At the same time we've managed to shave off some bytes from the core build - according to some tests of our we've managed remove over 1kb, but your YMMV ofc.Added:
retryeffect with the signature ofretry(maxTries, delayLength, worker, ...args)debounceeffect with the signature ofdebounce(delayLength, pattern, worker, ...args)Changed:
{effects, utils}aren't imported from 'redux-saga' anymore. import them fromredux-saga/effects,redux-saga/utilsishelper should be imported from ``@redux-saga/is.delayfunction (not effect!) should be imported from ``@redux-saga/delay-p{ [IO]: true, type, payload }, their structure should be treated as opaque anyway, so we hope this doesn't break anyoneENDwill now finish theraceeffectsVersion 1.0.0-beta.1
Error handling
Let's face it. Errors coming from

redux-sagawere unreadable and made finding a root cause of the problem really difficult. We really want to improve this situation and with this release (thanks to@restrry's amazing contribution) we start to log "saga stacks" along with original errors. This works similar to what React already does with its "component stacks". Just look at this one:You can even enhance those stacks with file names and line numbers by using in development our new babel-plugin-redux-saga (also thanks to
@restrry). Let us know if there are any issues with this or if we can make them even more useful!Also
onErrorshould get called now even if you throw non-Errors in your code.Beside that few things have changed, you can read more about them below.
Added:
takeLeadingeffect - it takes "leading" action and ignores all incoming ones of the same type while the "leading" is still handled (useful for things debouncing)node_modules, keep in mind though that we only depend oncomposefrom that package)Changed:
delaybecame an effect, you still can importdelayutil fromredux-saga/utilsthoughVersion 1.0.0-beta.0
I must say that this release probably wouldn't be possible without community sponsors - both organizations and individual backers.
I'm not saying that money given by the community has helped, but it is a nice incentive to work and a token of appreciation. Somehow the fact alone that people are sending money towards us got me lately back on track, going, writing some code, pushing things forward towards v1 release.
Note that the money is not what you have most valuable to offer for OSS projects - your time is way more valuable. If you want some feature to get implemented, bug to be fixed or just want to help - please reach out to a project's maintainer, maybe ask for pointers about code internals so you can start working easier. OSS is done by regular people like you and most projects' code is not magic, everything can be figured out and you can get comfortable with it.
Maintaining a popular project (over 10k ⭐️⭐️⭐️!) is not an easy task to do. Truth to be told you do not even have to write code to get exhausted. Answering issues, replying to people's demands etc is time and energy consuming.
I'd want to think that at least in those areas I've maintained the package well - nearly every question gets answered and it gets answered within days. I've helped people fix their broken code, I've suggested how their apps can be structured, how to solve particular problems.
However GitHub is not really a place where (most of such) questions should be asked. Whenever you consider asking a question on any project's GitHub, please consider if it is the right place to ask. There are many places you can get help from the community, such as obviously StackOverflow. In terms of redux-saga additionally you can reach out to the community on our gitter channel and redux-saga reactiflux's channel.
New:
multicastChannel- no buffering, notify all pending takers,multicastChannel#take(cb, matcher = matchers.wildard)yield take(multicastChannel, pattern)stdChannelgot reworked to be a singleton object (it is wrappedmulticastChannel's instance'), also it is an exported API to support newrunSaga's signature - this should also result in being a small perf boosteffectMiddlewares- useful especially for testing, you can intercept/hijack any effect and resolve it on your own - passing it very redux-style to the next middleware (last beingredux-sagaitself). How it might be used can be checked here (https://github.com/redux-saga/redux-saga/blob/34c9093684323ab92eacdf2df958f31d9873d3b1/test/interpreter/effectMiddlewares.js#L88). Many thanks to@eloytorofor this featureBreaking changes:
channelandactionChannelhave default buffer ofbuffers.expanding()putexecution are no longer caught and swallowed, you need to catch them manuallyeventChanneldoes no longer acceptmatcherargument - it was a hacky way to support previous implementation ofstdChannelarrayOfDefferedgot renamed to the correctarrayOfDeferredsymtries to useSymbolif it's available, this mainly breaks effects' "shape" - types no longer are simple strings, although no code should make any assumptions about effects' shape anywaytakeEvery,takeLatest,throttlefrom theredux-sagaentry point (they are and were importable fromredux-saga/effects),takem,put.syncand executing array of effects, there is explicit API for this for already some time -alleffectrunSaga- it no longer acceptssubscribeoption, you should create a channel (preferablystdChannel), pass it aschannelargument to therunSagaAPI and communicate with through it withtakeandputmethodstask.donegetter was changed to betask.toPromisemethodchannels private getters (__takers__and__closed__) got removedBug fixes:
stdChannelin the internals allowed to fix 2 bugs with missed actions (see#707and#1146), cc@gajusInternals: