The library is created for easily synchronization between URL query params and redux state. Inspired by redux-query-sync.
Installation can be done with npm
npm install --save sync-query-redux
yarn add sync-query-redux
;;const history = ;const pathname = "/somePathname";const actionCreator =type: "SOME_ACTION"newQueryString;const selector = statequeryString;const options =parseQuery: truestringifyState: truerelyOn: "location"replaceState: true;const syncer = pathname actionCreator selector options;const sync = store history syncer;const stopSync = syncstart; // use this function to stop synchronization
The core is
Syncer object, which should be injected into
Working example can be found here. You just need to run:
npm inpm run start
or with yarn
type ActionCreator =search: string | Objecttype: string key: string: any ;type any;type Options =parseQuery?: booleanstringifyState?: booleanreplaceState?: booleanrelyOn?: "location" | "state";interface ISyncer
;;;interface ISync: void;start(): Function;}
- Add tests
- Add module params-sync in which
Syncwill not have selector and actionCreator, but a list of params where each param will have its selector and its actionCreator.
- Make library available as a redux middleware
Contributors are welcome. Please discuss new features and submit PRs for bug fixes with tests.
npm run build which detects type errors, tests passing status and build the lib if everything is well.