Releases: KevinAst/feature-redux
Redux Enhancer Injection and Aspect Plugin Changes
GitHub Content • GitHub Release • Diff
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 / ExposurePreviously, 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 thecreateReducerAspect()
creator function), that provides a pre-loaded initial state of your store ... see API -
Added: A new optional
allowNoReducers
parameter was introduced (in thecreateReducerAspect()
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.
Address Security Alerts
GitHub Content • GitHub Release • Diff
NOTE: This release is a non-breaking change (i.e. no API was affected).
- Security: Address potential security vulnerabilities in dependent libs (mostly devDependencies completely unrelated to deployment)!
feature-u V1 Integration
GitHub Content • GitHub Release • Diff
NOTE: This release contains breaking changes from prior releases (i.e. a retrofit of client code is necessary).
-
Added/Removed: Eliminate singletons in favor of creators
The singleton:
reducerAspect
, has been replaced with a new creator:createReducerAspect()
.This is useful in both testing and server side rendering.
-
Internal: Integrate to feature-u V1
feature-u V1 has replaced the
app
object with afassets
object.In general, this is not a change that would break a plugin, because app/fassets is a positional parameter that is merely passed through the plugin. In other words the app/fassets is not directly interpreted by this plugin.
However, feature-redux does have subtle indirect references to changed feature-u V1 APIs, such as Error message strings, etc.
Therefore, it is best to tidy up this detail.
As a result, this plugin has now updated it's feature-u peerDependency to ">=1.0.0".
Establish Polyfill Strategy
NOTE: This release is a non-breaking change (i.e. no API was affected).
-
Review: A new policy is in affect where polyfills are the responsibility of the client app, when the target JavaScript engine is inadequate (such as the IE browser). Please refer to Potential Need for Polyfills for more information.
As a result, all previous code patches related to es2015+ polyfill issues were removed, in favor of polyfilling at the app-level.
-
Internal: The most current babel version/configuration is now used to transpile the library's es5 distribution.
Auto Redux DevTools Integration
NOTE: This release is a non-breaking change (i.e. no API was affected).
-
Enhanced: Integration with Redux DevTools is automatically configured (when detected).
-
Docs: Removed action-u reference from example code, using a more conventional "defined constant" action type.
react-native android patch
NOTE: This release is a non-breaking change (i.e. no API was affected).
-
A patch was applied in support of react-native android.
When running react-native under android, receiving the following exception:
ERROR: undefined is not a function evaluating 'content[typeof Symbol === 'function' ? Symbol.iterator: '@@iterator']()'
This is a transpiler issue related to the es6 "for of" loop. It is believed to be limited to the react-native android JS engine.
This may be a babel transpiler issue (possibly due to a stale babel version), or an issue with with react-native android's JS engine. The problem was temporarily avoided by employing old style es5 "for loop" constructs (till further research is conducted).
Initial Release
This is where it all began ...