-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: remove default custom serialization and make it an opt-in option #272
Conversation
Removing custom serializer as a default, since its not alligned with redux recomendation about store & serialization fix #261
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looking good!
|
||
async function getRendererState(callback: (state: unknown) => void) { | ||
async function fetchInitialState( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice naming
* @param {MainStateSyncEnhancerOptions} options Additional enhancer options | ||
* @returns StoreEnhancer | ||
*/ | ||
export const mainStateSyncEnhancer = (options = defaultOptions): StoreEnhancer => ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
🎉 This PR is included in version 2.0.0-alpha.2 🎉 The release is available on: Your semantic-release bot 📦🚀 |
* feat: migrate to typescript (#259) * feat: migrate to typescript This is WIP * feat: package.json cleanup * chore: remove eslint config rules * chore: more cleaning * chore: add tsc tests * chore: reorganize export structure * chore: add some basic e2e tests * buid: add GH action for PR * fix: e2e test memory leak fix * chore: vscode workspace settings * fix: update username in package.json * chore: rollup.config simplify * chore: add eslint (#268) * chore: add eslint This PR adds eslint setup to the reposiory. It doesn't fix existing errors/warnings - should get addressed in follow up Pull Requests since the codebase isn't final now anyway. Errors so far: ``` /Users/maciej.malkowski/git/github.com/klarna/electron-redux/src/syncMain.ts 18:56 error Async arrow function has no 'await' expression @typescript-eslint/require-await 46:3 error Unsafe return of an any typed value @typescript-eslint/no-unsafe-return /Users/maciej.malkowski/git/github.com/klarna/electron-redux/src/syncRenderer.ts 21:8 error Unsafe assignment of an any value @typescript-eslint/no-unsafe-assignment 61:4 error Unsafe return of an any typed value @typescript-eslint/no-unsafe-return 76:3 error Unsafe return of an any typed value @typescript-eslint/no-unsafe-return 85:27 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any 93:3 error Promises must be handled appropriately or explicitly marked as ignored with the `void` operator @typescript-eslint/no-floating-promises 105:3 error Unsafe return of an any typed value @typescript-eslint/no-unsafe-return 105:32 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any /Users/maciej.malkowski/git/github.com/klarna/electron-redux/src/utils/actions.ts 15:31 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types /Users/maciej.malkowski/git/github.com/klarna/electron-redux/src/utils/json.ts 6:9 error Unsafe assignment of an any value @typescript-eslint/no-unsafe-assignment 7:3 error Unsafe member access .__hydrate_type on an any value @typescript-eslint/no-unsafe-member-access 22:24 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types 22:36 warning Argument 'value' should be typed with a non-any type @typescript-eslint/explicit-module-boundary-types 22:43 warning Unexpected any. Specify a different type @typescript-eslint/no-explicit-any 23:6 error Unsafe member access .__hydrate_type on an any value @typescript-eslint/no-unsafe-member-access 27:13 error Unsafe member access .__hydrate_type on an any value @typescript-eslint/no-unsafe-member-access 28:18 error Unsafe member access .items on an any value @typescript-eslint/no-unsafe-member-access 31:2 error Unsafe return of an any typed value @typescript-eslint/no-unsafe-return /Users/maciej.malkowski/git/github.com/klarna/electron-redux/src/utils/misc.ts 7:44 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types 24:29 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types 33:31 warning Missing return type on function @typescript-eslint/explicit-module-boundary-types /Users/maciej.malkowski/git/github.com/klarna/electron-redux/tests/e2e.spec.ts 21:5 error Unexpected `await` of a non-Promise (non-"Thenable") value @typescript-eslint/await-thenable 36:12 error Unexpected `await` of a non-Promise (non-"Thenable") value @typescript-eslint/await-thenable 45:12 error Unexpected `await` of a non-Promise (non-"Thenable") value @typescript-eslint/await-thenable /Users/maciej.malkowski/git/github.com/klarna/electron-redux/tests/e2e/main/index.ts 31:5 error Promises must be handled appropriately or explicitly marked as ignored with the `void` operator @typescript-eslint/no-floating-promises 31:44 error Invalid type "string | undefined" of template literal expression @typescript-eslint/restrict-template-expressions 33:5 error Promises must be handled appropriately or explicitly marked as ignored with the `void` operator @typescript-eslint/no-floating-promises 54:1 error Promises must be handled appropriately or explicitly marked as ignored with the `void` operator @typescript-eslint/no-floating-promises /Users/maciej.malkowski/git/github.com/klarna/electron-redux/tests/e2e/renderer/index.ts 9:5 warning Forbidden non-null assertion @typescript-eslint/no-non-null-assertion 18:5 warning Forbidden non-null assertion @typescript-eslint/no-non-null-assertion 22:5 warning Forbidden non-null assertion @typescript-eslint/no-non-null-assertion 32:5 warning Forbidden non-null assertion @typescript-eslint/no-non-null-assertion /Users/maciej.malkowski/git/github.com/klarna/electron-redux/tests/typescript/syncMain.ts 5:7 warning 'store' is assigned a value but never used @typescript-eslint/no-unused-vars /Users/maciej.malkowski/git/github.com/klarna/electron-redux/tests/typescript/syncRenderer.ts 5:7 warning 'store' is assigned a value but never used @typescript-eslint/no-unused-vars ✖ 35 problems (20 errors, 15 warnings) ``` * fix: fix test related type issues * chore: add prettier & format the code (#269) This PR adds the prettier code formatter with custom config, and formats existing code according to those rulles. Pre-commit hook to format staged files was also added. * feat: add Code of Conduct & bump version (#270) This pull request adds Code of Conducts and marks the change as breaking for semanric release to bump the version to v2 BREAKING CHANGE: TS rewrite * feat: add semantic-release setup for automatic deployments (#271) * feat: add semantic-release setup for automatic deployments This adds the setup for semantic-release. master/beta/alpha branch changes will get deployed to npm with version depending on the commit message * chore: add PR linter * chore: add more events tro trigger the check * fix: remove default custom serialization and make it an opt-in option (#272) Removing custom serializer as a default, since its not alligned with redux recomendation about store & serialization fix #261 * fix: reduce bundle size by limiting external dependencies (#276) I removed external dependency of `flux-standard-action` that includes entire loadash with it when imported. Instead, I re-implemented single function we are using and relied on single modules from loadash that are required. Should reduce the size significantly * feat: ignore devtools when sending actions to renderers (#275) Co-authored-by: Maciej Małkowski <monkey3310@gmail.com> * chore: add README & LICENSE (#281) * chore: add README & LICENSE As per title, adding initial README file & LICENSE. It will need some work for sure, I've left the missing links as TODO * chore: more badges * chore: apply suggestions from code review Co-authored-by: Burkhard Reffeling <burkhard.reffeling@gmail.com> * Update LICENSE.md Co-authored-by: Burkhard Reffeling <burkhard.reffeling@gmail.com> * feat: make renderer state initialization synchronous by default (#280) * feat: make renderer state initialization synchronous by default Implements #278 * code review comments * chore: spelling Co-authored-by: Burkhard Reffeling <burkhard.reffeling@gmail.com> * chore: code review comments Co-authored-by: Burkhard Reffeling <burkhard.reffeling@gmail.com> * docs: setup base documentation website (#277) * docussaurus initial setup * base docussaurus config * add base gh-pages deployment action * remove unnecessary job step * test changing baseurl * fix last commit * fix last commit * remove trailing slash * fix baseUrl config * add basic content based on readme * use yarn in gh-pages action Co-authored-by: Maciej Małkowski <monkey3310@gmail.com> * feat: add option for denyList (#274) * fix: align enhancer style with standards to wrap the middleware (#284) * fix: align enhancer style with standards to wrap the middleware * fix: align enhancer style with standards to wrap the middleware * docs: adding initial content for v2 (#290) * docs: adding initial content for v2 Adding some initial content for Version 2, including expected file tree of documentation & legacy v1 docs paragraph. * chore: apply suggestions from code review Co-authored-by: Burkhard Reffeling <burkhard.reffeling@gmail.com> Co-authored-by: Burkhard Reffeling <burkhard.reffeling@gmail.com> * docs: fixing doc build issue with missing paths (#295) Also adding PR build step to prevent this from happening again * chore: update semrel lint to run on forks * fix(#285): add composeWithStateSync to resolve issues with enhancer order (#296) * fix(#285): add composeWithStateSync to resolve issues with enhancer order * fix: resolve PR comments * chore: add type tests * docs: update README getting started and add changes to FAQ Co-authored-by: Maciej Małkowski <monkey3310@gmail.com> * chore: update README * chore: update README links * chore: adding basic example of usage in raw scenario + moving integration tests (#299) * chore: adding basic example of usage in raw scenario * chore: work in progress * chore: trying to add tests * chore: fixing e2e tests and making them runnable * fix package.json * chore: code review comments addressed * feat: use contextBridge in favour of requiring nodeIntegration (#300) * feat: use contextBridge in favour of requiring nodeIntegration Due to security concerns related to usage of nodeIntegration flag, according to best electron practices, renderer functions should be exposed with contextBridge. This PR does exactly that. It also changes a bit API to accomodate for this feature * feat: fixing issues with test enviroment * fix: add missing preventDoubleInitialization() check * change the scope of the contextBridge bindings to only expose high level API --------- Co-authored-by: Paul Tiedtke <PaulTiedtke@web.de> Co-authored-by: Burkhard Reffeling <burkhard.reffeling@gmail.com> Co-authored-by: António Almeida <theantonioalmeida@gmail.com> Co-authored-by: Jonas Snellinckx <jo.snel@hotmail.com>
Removing custom serializer as a default, since its not alligned with redux recommendation about store
& serialization
You can still opt-in for some custom functions via options when creating the enhancers.
Renamed the main functions too.
fix #261