Change Log
29.1.0Log stacktraces in the debug bundle log output.29.0.0This release has some changes that are unlikely to be breaking, but for safety releasing as a major bump:Fixes a bug during
integrateBundlescalls where the new bundles'initfunctions would be called before the store reducer had been replaced; potentially causing the code in theinitfunction to throw if it called a selector that depended on the new state. Theinitfunctions are now called as the final step inintegrateBundles- this is unlikely to be a breaking but if you are usingintegrateBundlesandinitfunctions, verifying they are working as expected is advised.Adds an
allowMissingoption tosubsribeToSelectors. If passed, you can now subscribe to selectors that don't yet exist without thesubscribeToSelectorscall throwing. If the selector is added later (viaintegrateBundles) then changes to that selector will be emitted to the callback as expected.Switched CI from circle ci to github actions
28.1.0Minor non-breaking enhancement tocreateRouteBundleto more easily allow dynamic replacement of routes. AddingdoReplaceRoutesaction creator and explicitly storing cached routes and routeMatcher in a reducer so they can be easily replaced.28.0.3No API changes.Replaces all uses of
selfwithglobalThis.Explicitly pre-binds
rafandrictoglobalThisto prevents bug otherwise caused by Parcel 2 compiler optimization.Adds
prettierandfixpackas cleanup steps.
28.0.2npm 7 deprecated prepublish, so last publish didn't build first. This fixes that.28.0.1Super minor fix. Some bundlers will remove context forrequestIdleCallbackandrequestAnimationFrameso they end up being called as a method of the main redux-bundler export. This can cause "ILLEGAL invocation" errors when using them. This change simply wraps them in a fn so they're always called onself.28.0.0No API changes, just internal change to how reactors are dispatched. Due to potential behavioral impact to apps this is a major version bump. Details: to keep perf good we fire reactors on arequestIdleCallbackwe were firing the result even if by the time it fired, state had changed. The changes in this release should make that scenario impossible.27.0.2Fixed handling ofselectRouteif there was no match. Previously, this would error, now it returnsnull. PreviouslyselectRouteParamswould also error, now it returns{}. Updated dependencies to eliminate some npm audit security warnings. Updated doc table of contents to fix broken links (due to change in gitbook). Removedstandardandprettier-standardin lieu of vanilla eslint. Removed a couple of unused deps (oops).27.0.1Fix build issue for newly extracted "extra" bundles.27.0.0Separated a few non-core items into their own exports must be imported independently:redux-bundler/dist/create-async-resource-bundle,redux-bundler/dist/create-geolocation-bundle,redux-bundler/dist/online-bundle. This just removes stuff that is often unused from main build.26.1.0AddedreactorPermissionCheckoption tocreateReactorBundleto better support building rate-limiting or developer tools for reactors. Also, added better docs forcreateReactorBundleoptions.26.0.0Removed
logIdleoption fromcreateDebugBundleand added support foractionFilterfunction instead. Thanks to @malbonesi for the idea of making this more flexible.Added
store.destroy()method. Bundle.init()methods can optionally return a "cleanup" function. This means you can have an architecture that loads/unloads entire apps within the same document and lets you do cleanup like removing event listeners, etc. Thanks to @rudionrails
25.0.0Re-worked debug bundle. It is now created programmatically so it can be configured:
createDebugBundle()Updates
querystringifyandcreate-selectorto2.1.1(#55)Fixes annoying "missing sourcemap" warning when building with parcel.
24.0.0Breaking change to
createCacheBundle. It now takes an options object as an argument instead of just a cache function. This allows us to pass anenabledoption to enable its use in node.js (it's still off by default in node). Also adds support for passing aloggerfunction as an option. It will be called with a message describing what was persisted and why.Fixes persist action support for bundles added later with
integrateBundles. Previously the map of actions to reducers to persist was only created up front. It is now re-generated after other bundles are integrated.Added, tests to demonstrate these changes.
23.2.0Adds option forcancelIdleWhenDonetocreateReactorBundle. By default, if redux-bundler is running in node.js and there are no pending reactions, the idle dispatcher stops firing. This is to support normal SSR use-cases where you may want to wait for the store to be "done" doing any remaining work, then fire the done callback. However, for use cases where you're wanting to use redux-bundler as a long-lived state engine in node.js it was problematic to have it stop idling. The default behavior is unchanged, but no if you passcancelIdleWhenDone: falseas an option, it will keep running indefinitely.23.1.2AddssetTimeoutto restore scroll position util. This buys UI libs a chance to update the DOM and makes scroll position restoration work in some cases where it wasn't previously.23.1.1Updatescreate-selectorto4.0.3to improve selector resolution perf. Updates a few dev dependencies to latest versions.23.1.0AddsmaintainScrollPositionoption todoUpdateUrl()(thanks @abuinitski). Minor tweak to explicitly check fornullinstead of implied type in order to support storing0as the data increateAsyncResourceBundle()(thanks @layflags).23.0.2Fixes issues with scroll restoration not working in all cases when using the url bundle.23.0.1Use--no-compressinstead of--compress=false. It was not being parsed properly by the updated version of microbundle.23.0.0Added support for passing a
REPLACE_STATEaction to replace entire state of store. Because this could be a breaking change if you already have such an action type, I'm doing a major version bump for this.Updated npm deps to mitigate security advisories.
22.2.0Added
selectRoutesto enable retrieving the entire routes object.Merged refactored
createAsyncResourceBundle(thanks @aaronmccall) to enable better bundle composition.
22.1.0- AddedselectRouteMatcherto enable retrieving the function used to match urls to routes.22.0.0- Upgraded to redux v4.0.0.21.2.2- FixedstaleAge->staleAfterbug in geolocation bundle and fix starting state from online bundle should come fromnavigator.onLine(thanks @layflags!). Minor docs update (thanks @JayChetty).21.2.1- Super minor tweak toappTimeBundleto make it possible to overwriteDate.now()after the app has started which can be useful to enable speeding up time for automated testing.21.2.0- Added support for hash-based routing by passing in options object tocreateRouteBundle(thanks [@olizilla]!).21.1.0- Added support for Redux Dev Tools (thanks @aulneau!). Added CI. Added some notes for React Native users to docs (thanks @quarkcore).21.0.3- Fix for bug in required options check in createAsyncResourceBundle (thanks @greggb). Minor simplification/cleanup ofcustom-apply-middleware.js. (this was supposed to be21.0.2but accidentally got published as21.0.3:facepalm:)21.0.1- Build with compress=false to avoid redux console warning and improve debugging experience.21.0.0- Adding scroll restoration handling. (many browsers already handle this well by default, but not FF or IE 11). This handles scroll position internally in the url bundle if used, it also exports the scroll restoration helper functions so that they can be used directly as well.20.0.0- Adding documentation site, wrote lots of docs and made mostly internal changes and bug fixes, can cause breakage if depending on action type names, or if usingcomposeBundlesRaw()to handpick what's included.Changed all action types to be past-tense (so they don't sound like RPC calls). Action types should describe things that happened, not sound like they're causing things to happen. So in asyncCount instead of
START,SUCCESS,ERRORit's nowSTARTED,FINISHED,FAILED. In URL bundleUPDATE_URL->URL_UPDATED. In geolocation bundleREQUEST_GEOLOCATION_X->GEOLOCATION_REQUEST_X.All included bundles that require instantiation with a config are now named
createXBundlefor consistency. This includescreateGeolocationBundle,createReactorBundle,createCacheBundle.Added lots of documentation to readme several of the included bundles.
Significant changes to
createAsyncResourceBundle:actionBaseTypeis now the noun, such asUSER, from this we buildFETCH_USER_STARTED,USER_EXPIRED, etc.doMarkXAsStaleis nowdoMarkXAsOutdated.Action type names updated to be past tense:
MAKE_STALE->X_INVALIDATEDAdded
doClearXaction creator and reducer case.Now takes 3 time-related settings:
staleAfter,retryAfter, andexpireAfter.Support for
expireAfterwas added, theX_EXPIREDaction will be dispatched clearing the state.
Removed wonky batch dispatch quasi-middleware.
19.0.1- Minor fix for WebWorkers (updating redux-persist-middleware dep).19.0.0- Externalized caching lib as its own library called money-clip and the caching bundle now uses redux-persist-middleware to generate it's persistance middleware. Nothing huge changes other than importing caching lib from outside of bundler. I've updated redux-bundler-example for sample usage of caching bundle with money-clip. RenamedcacheBundle->createCacheBundlesince it needs to be configured to be used. Removed unusednpm-watchdev dependency.18.0.0- RenamedselectCurrentComponent->selectRoutein create route bundle.17.1.1- Fix bug whererequestAnimationFramewas expected to exist when running inside a worker.17.1.0- Export*from redux in index.17.0.1- Fix to ensure publishing/mapping to correct build files :facepalm:.17.0.0- Switched to build with microbundle. Should address issues #5, #8. No longer pulling in redux-bundler version into build.16.1.1- Ensure all output from selectors of included bundles is serializable.selectUrlObject()in the url bundle was returning aURLobject instance. Now it just returns a plain object with all string properties from the URL object. Did this as bug fix release because it was always intended this way. In theory it could could be a breaking change, but odds are miniscule. Only if someone were doingselectUrlObjectthen treating its resultingsearchParamsprop as aURLSearchParamsobject and calling its methods instead of using one of the selectors that already exist for accessing query params.16.1.0- Added.action()method to store for calling an action creator by name (useful when wanting to proxy all actions to another object, such as a web worker)16.0.0- First public release
Last updated
Was this helpful?