Skip to content

Redux Enhancer Injection and Aspect Plugin Changes

Latest
Compare
Choose a tag to compare
@KevinAst KevinAst released this 05 Feb 20:23
f5206a6

GitHub ContentGitHub ReleaseDiff

NOTE: This release contains minor breaking changes from prior releases ... some API changes, at minimum a new version of the feature-u peer dependency (also v3.0.0). A trivial retrofit of client code is necessary!

  • Pardon the version bump (from v1.0.1 to v3.0.0). We skipped v2 strictly as an internal management convenience - to match the required peer dependency of feature-u (which is also v3.0.0).

  • Added: External Aspects may now introduce their own enhancers to the redux store through the Aspect.getReduxEnhancer() API (an "aspect cross-communication mechanism") ... thanks @sylvainlg!! This similar to how External Aspects have always been able to introduce their own redux middleware. Please refer to the "Enhancer Integration" Inputs section for more information.

  • Added: This Aspect Plugin now promotes the redux getState/dispatch functions in the namedParams of feature-u's Application Life Cycle Hooks ... see Interface Points / Exposure

    Previously, these parameters were promoted directly by feature-u, but that coupling has been removed in favor of a new internal mechanism allowing any Aspect to inject their namedParams.

    As a result, this feature-redux release (V3) requires feature-u V3 or greater (and is reflected in it's feature-u peerDependency: ">=3.0.0").

  • Changed: The createReducerAspect() creator function now accepts only named parameters ... see API

  • Added: A new optional initialState parameter was introduced (in the createReducerAspect() creator function), that provides a pre-loaded initial state of your store ... see API

  • Added: A new optional allowNoReducers parameter was introduced (in the createReducerAspect() creator function), that directs what happens when no reducers were specified on your features ... see API

  • Internal: All initialization/validation was moved from the genesis() hook into our constructor.