-
-
Notifications
You must be signed in to change notification settings - Fork 480
[Tech] Switch from react-scripts to Vite & clean up everything to work with strict mode #1633
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
Conversation
- Rename "src" -> "src/frontend" - Rename "electron" -> "src/backend" - Move types.ts to "common/types.ts"
This just cleans up package.json a bit
These weren't necessary, at least as far as I can tell
Since there are a lot of changes here, feel free to only review code you've written/you know yourself & leave the parts you don't know that well up to someone else. Last thing I want is this not getting reviewed because of its size |
good thing is that most file changes are just renames or changes in the imports to point to the right place, so it looks bigger than what it really is I check this, I didn't look at code I've never touched before, I think it looks good at least the parts I understand I'll try the branch later and use the app for a while to see if there's anything I can find broken One question, I think we are removing the unreal market stuff, right? I see a lot of EDIT: I can't imagine the amount of conflicts you get here xD |
Yes, I got rid of that since I don't think it was working anymore. Could add it back if it's really necessary though, although I really don't think anyone used it
It's fine actually, Git itself is much better at auto-resolving things than GitHub |
I've never used that either (I think it was actually broken, it never showed anything for me but maybe I just don't know how to use that feature). Just wonder if anybody actually uses that, maybe there was a discussion about this already in discord. |
Turns out refactoring a lot of stuff can introduce issues, who would've thought
You never have to run this yourself, so it was a bit confusing to have. If you really need its functionality, `vite build` isn't that hard to type in on your own :^)
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.
Let's merge this after resolving conflicts. We need this Pr to progress further with refactoring. Bugs can be fixed later here. This pr is the first step of beta 2.5.0
I will start to review and test this one. Might take a few days though. |
This command can be used to make sure that no files in the project violate TS rules, since Vite itself doesn't check them It would probably be a good idea to add them to GH Workflows and/or pre-commit hooks, but I'm not too sure on how to do that
Not sure how this happens, but it seems they've gotten screwed up in the merge
One issue I've now encountered is that updates don't seem to want to work. They run through fine, but the frontend still displays an update even after it's done. Backend does not report this game as update-able, so it's definitely some caching weirdness I'm not too sure if this is caused by this PR, but it's definitely what I'm gonna look into next |
Another thing I'd like to move away from is watching Legendary's |
This fixes an issue where refreshing the library while only showing one library made the update icons of all the others disappear
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 colossal work, thanks for that.
From what I saw and tested I could not find any bug, even the one you said about the update status not updating. For me it works fine.
Vite is also a lot better to develop and does everything faster so it was a pretty good improvement.
In my opinion it is ready to merge on beta
so if some bug appears we can fix it afterwards :)
@Nocccer I believe you need to dismiss the requested changes, otherwise, it can't be merged. |
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.
Pretty good work. I alread developed a little bit against it with the logger refactor.
Well, that would be because I fixed it in 8754058. |
* [Feat] Proper check if heroic can communicate with internet (#1677) * Added ping to check internet connection * removed console.log * Make log of error more clear * Remove ping package and just use ping cli command * Return if one ping succeed * [i18n] Updated Translations (#1728) * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <[email protected]> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <[email protected]> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Translated using Weblate (Czech) Currently translated at 100.0% (358 of 358 strings) Translated using Weblate (Czech) Currently translated at 100.0% (358 of 358 strings) Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <[email protected]> Co-authored-by: Shimon <[email protected]> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/globals/cs/ Translation: Heroic Games Launcher/GamePage Translation: Heroic Games Launcher/Globals * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <[email protected]> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Translated using Weblate (Korean) Currently translated at 100.0% (358 of 358 strings) Co-authored-by: Hosted Weblate <[email protected]> Co-authored-by: Moon Sungjoon <[email protected]> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/globals/ko/ Translation: Heroic Games Launcher/Globals * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <[email protected]> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Translated using Weblate (Russian) Currently translated at 100.0% (358 of 358 strings) Translated using Weblate (Russian) Currently translated at 100.0% (358 of 358 strings) Co-authored-by: Hosted Weblate <[email protected]> Co-authored-by: Sedative <[email protected]> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/globals/ru/ Translation: Heroic Games Launcher/Globals * Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <[email protected]> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translation: Heroic Games Launcher/GamePage * Translated using Weblate (Persian) Currently translated at 100.0% (358 of 358 strings) Update translation files Updated by "Squash Git commits" hook in Weblate. Co-authored-by: Hosted Weblate <[email protected]> Co-authored-by: Parsa Shadab <[email protected]> Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/gamepage/ Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/globals/fa/ Translation: Heroic Games Launcher/GamePage Translation: Heroic Games Launcher/Globals * Update translation files Updated by "Squash Git commits" hook in Weblate. Translation: Heroic Games Launcher/Globals Translate-URL: https://hosted.weblate.org/projects/heroic-games-launcher/globals/ Co-authored-by: Shimon <[email protected]> Co-authored-by: Moon Sungjoon <[email protected]> Co-authored-by: Sedative <[email protected]> Co-authored-by: Parsa Shadab <[email protected]> * Revert "[i18n] Updated Translations" (#1745) Revert "[i18n] Updated Translations (#1728)" This reverts commit 7f5d2b3. * [Tech] Switch from react-scripts to Vite & clean up everything to work with strict mode (#1633) * Change complete project structure - Rename "src" -> "src/frontend" - Rename "electron" -> "src/backend" - Move types.ts to "common/types.ts" * Switch from react-scripts + foreman + webpack + ts-loader -> Vite * Set GH_TOKEN and GITHUB_TOKEN in tests directly This just cleans up package.json a bit * Get SVG & JPG importing working in VSCode * Move type definitions into common/typedefs * Fixup tests * Rewrite large chunks of the backend to be compatible with strict mode * Modify frontend to reflect changes to type definition structure * Remove unused files These weren't necessary, at least as far as I can tell * Update translations * Fixup: Re-add `--filesystem` parameter for Proton Turns out refactoring a lot of stuff can introduce issues, who would've thought * Remove `build` script You never have to run this yourself, so it was a bit confusing to have. If you really need its functionality, `vite build` isn't that hard to type in on your own :^) * Fully remove all remnants of UE support * Add new 'codecheck' command This command can be used to make sure that no files in the project violate TS rules, since Vite itself doesn't check them It would probably be a good idea to add them to GH Workflows and/or pre-commit hooks, but I'm not too sure on how to do that * Update translation files * Fix translation files Not sure how this happens, but it seems they've gotten screwed up in the merge * Remove some more unnecessary files * Always get game updates from all libraries This fixes an issue where refreshing the library while only showing one library made the update icons of all the others disappear * Some misc code style changes * Merge branch 'main' of github.com:Heroic-Games-Launcher/HeroicGamesLauncher into beta * [Fix] Check if Legendary's `metadata` folder exists before trying to read it (#1785) * [Fix] Not permanently saving downloadNoHttps config option (#1797) fixing not permanently saving downloadNoHttps config option * Merge branch 'main' of github.com:Heroic-Games-Launcher/HeroicGamesLauncher into beta * [Fix] TypeError: Unexpected end of json (#1806) * remove useEffect double import * catch type error end of json * Added try catch * Add log prefix to see what runner fails * [Tech] Add codecheck to pre push and workflow (#1794) * Add codecheck to pre push and workflow * Add new workflow for codecheck * renaming * [Fix] Update legendary binaries (#1809) Update legendary binaries * fix: gog getGameinfo after clear the cache Co-authored-by: Niklas <[email protected]> Co-authored-by: Weblate (bot) <[email protected]> Co-authored-by: Shimon <[email protected]> Co-authored-by: Moon Sungjoon <[email protected]> Co-authored-by: Sedative <[email protected]> Co-authored-by: Parsa Shadab <[email protected]> Co-authored-by: Mathis Dröge <[email protected]> Co-authored-by: Jan B <[email protected]>
strict
modeGame.launch
some more #1602Tested everything on Linux so far, will test on Windows as well. Mac testing would be appreciated as always
The way development works now is the following:
yarn dev
. Heroic will open and any change you make in the frontend or backend will reload/restart it.yarn dist:linux
/dist:mac
/dist:win
as alwaysyarn codecheck
.Note: This is different from how it worked before. In the interest of speed & de-duplication, Vite does not check for violations itself since it's (1) way slower to do so and (2) you should already know about them through some other tool (VSCode shows them for example).
If you want to be absolutely sure everything's fine, you can run this command to (try to) compile every
.ts[x]
file in the project withtsc
Use the following Checklist if you have changed something on the Backend or Frontend: