-
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
chore: adding basic example of usage in raw scenario + moving integration tests #299
Conversation
@@ -72,6 +68,7 @@ | |||
"husky": "^4.3.0", | |||
"jest": "^26.4.2", | |||
"lint-staged": "^10.4.0", | |||
"npm-run-all": "^4.1.5", |
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.
Doesn't look like you're using this?
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.
@hardchor run-p
command is part of it, will use it to run all scripts for examples (I will add more examples folders in future)
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.
Good job with the example :) I like it
examples/basic/src/renderer/index.ts
Outdated
const store = createStore(rootReducer, stateSyncEnhancer()) | ||
|
||
const globalCounterEl = document.getElementById('globalCounter')! | ||
document |
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.
What about placing these in a function like so
const registerEvents = () => {
...
}
...
render()
registerEvents()
Just to add a bit of clarity.
examples/basic/package.json
Outdated
@@ -0,0 +1,26 @@ | |||
{ | |||
"name": "@electron-webpack-examples/basic", |
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.
Nitpick, but should this be @electron-redux-webpack-examples/basic
?
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.
Oh, actually I didn't want webpack part here at all, must have included it by mistake, since it was giving me hard time :D It should be @electron-redux-examples/basic
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.
Looks good to me 😄
🎉 This PR is included in version 2.0.0-alpha.9 🎉 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 <[email protected]> * 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 <[email protected]> * Update LICENSE.md Co-authored-by: Burkhard Reffeling <[email protected]> * 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 <[email protected]> * chore: code review comments Co-authored-by: Burkhard Reffeling <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Burkhard Reffeling <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Burkhard Reffeling <[email protected]> Co-authored-by: António Almeida <[email protected]> Co-authored-by: Jonas Snellinckx <[email protected]>
Instead of having single e2e test suite, that limits to one electron configuration, I have added examples directory, that will hosts multiple different usage scenarios (and integrations with external libs). On top of it, it will run integration suite on all the examples, so it will be easier to spot any potential integration mistakes, especially when dealing with middleware config