diff --git a/.eslintrc.json b/.eslintrc.json index 00c0374..25b3ef7 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -11,7 +11,10 @@ "plugin:@typescript-eslint/recommended-requiring-type-checking", "plugin:import/recommended", "plugin:import/electron", - "plugin:import/typescript" + "plugin:import/typescript", + "plugin:react/recommended", + "plugin:react/jsx-runtime", + "prettier" ], "parser": "@typescript-eslint/parser", "parserOptions": { @@ -19,7 +22,18 @@ "sourceType": "module" }, "rules": { - "import/no-unresolved": "off" + "import/no-unresolved": "off", + "import/no-named-as-default": "off", + "@typescript-eslint/no-floating-promises": "off", + "@typescript-eslint/no-misused-promises": "off", + "@typescript-eslint/no-unused-promises": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/no-non-null-assertion": "off" + }, + "settings": { + "react": { + "version": "detect" + } }, "ignorePatterns": "/*.js" } diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..daaa5ee --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "arcanis.vscode-zipfs", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode" + ] +} diff --git a/package.json b/package.json index 054cb36..f8f2fdb 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,9 @@ "css-loader": "^6.0.0", "electron": "16.0.1", "eslint": "^7.6.0", + "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.20.0", + "eslint-plugin-react": "^7.28.0", "file-loader": "^6.2.0", "fork-ts-checker-webpack-plugin": "^6.0.1", "node-loader": "^2.0.0", diff --git a/src/index.ts b/src/index.ts index 4b5aea3..7b3ddfc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/no-misused-promises */ -/* eslint-disable @typescript-eslint/no-floating-promises */ - import { app, BrowserWindow, ipcMain, shell, dialog } from "electron"; import log from "electron-log"; diff --git a/src/lib/instances/createInstance.ts b/src/lib/instances/createInstance.ts index 2a5b2fd..e1944e4 100644 --- a/src/lib/instances/createInstance.ts +++ b/src/lib/instances/createInstance.ts @@ -102,8 +102,7 @@ export async function createInstance( log.info("Server creation complete"); return true; } catch (e) { - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - log.error(`FABRIC INSTALLER failed: ${e}`); + log.error(`FABRIC INSTALLER failed: ${e as string}`); return false; } } diff --git a/src/lib/instances/runInstance.ts b/src/lib/instances/runInstance.ts index e48f136..a8d2870 100644 --- a/src/lib/instances/runInstance.ts +++ b/src/lib/instances/runInstance.ts @@ -66,7 +66,6 @@ export async function runInstance( window.webContents.send("stderr", String(data)); }); - // eslint-disable-next-line @typescript-eslint/no-misused-promises const playerQuery = setInterval(async () => { log.debug("Running periodic server query..."); diff --git a/src/lib/versions.ts b/src/lib/versions.ts index 903259c..8a16cd4 100644 --- a/src/lib/versions.ts +++ b/src/lib/versions.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ import cmp from "semver-compare"; export function getServerTypes(): string[] { @@ -10,7 +9,7 @@ export async function getVersions(type: string): Promise { const res = await fetch( "https://launchermeta.mojang.com/mc/game/version_manifest.json" ); - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + const data = ( (await res.json()) as { versions: { diff --git a/src/preload.ts b/src/preload.ts index 79a1c60..a083565 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ - import { contextBridge, ipcRenderer } from "electron"; import log from "electron-log"; diff --git a/src/windows/RunWindow.tsx b/src/windows/RunWindow.tsx index a197e44..b32fb64 100644 --- a/src/windows/RunWindow.tsx +++ b/src/windows/RunWindow.tsx @@ -49,8 +49,8 @@ const RunWindow = (): JSX.Element => {

Players

diff --git a/src/windows/SettingsWindow.tsx b/src/windows/SettingsWindow.tsx index 3ab17fe..6cde7aa 100644 --- a/src/windows/SettingsWindow.tsx +++ b/src/windows/SettingsWindow.tsx @@ -33,7 +33,6 @@ const SettingsWindow = () => { // if the value is "", send undefined instead (to delete item) window.settings.setTheme( - // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore theme === "default" ? undefined : theme || undefined ); diff --git a/tsconfig.json b/tsconfig.json index a4bc568..f283d60 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,7 +12,7 @@ "moduleResolution": "node", "resolveJsonModule": true, "strict": true, - "jsx": "react", + "jsx": "react-jsx", "downlevelIteration": true, "paths": { "*": ["node_modules/*"] diff --git a/yarn.lock b/yarn.lock index f0199e7..182d697 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2159,7 +2159,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.4": +"array-includes@npm:^3.1.3, array-includes@npm:^3.1.4": version: 3.1.4 resolution: "array-includes@npm:3.1.4" dependencies: @@ -2190,6 +2190,17 @@ __metadata: languageName: node linkType: hard +"array.prototype.flatmap@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.flatmap@npm:1.2.5" + dependencies: + call-bind: ^1.0.0 + define-properties: ^1.1.3 + es-abstract: ^1.19.0 + checksum: a14119a28e5687a13cf3fd6756a8e7810563a9e81cd4227e27a25c31d362df47ac72553f06a271fd728741e199047933ad43d561d64a28da0b4e1a26f74e939e + languageName: node + linkType: hard + "asar@npm:^2.0.1": version: 2.1.0 resolution: "asar@npm:2.1.0" @@ -4058,6 +4069,17 @@ __metadata: languageName: node linkType: hard +"eslint-config-prettier@npm:^8.3.0": + version: 8.3.0 + resolution: "eslint-config-prettier@npm:8.3.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: df4cea3032671995bb5ab07e016169072f7fa59f44a53251664d9ca60951b66cdc872683b5c6a3729c91497c11490ca44a79654b395dd6756beb0c3903a37196 + languageName: node + linkType: hard + "eslint-import-resolver-node@npm:^0.3.6": version: 0.3.6 resolution: "eslint-import-resolver-node@npm:0.3.6" @@ -4102,6 +4124,30 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react@npm:^7.28.0": + version: 7.28.0 + resolution: "eslint-plugin-react@npm:7.28.0" + dependencies: + array-includes: ^3.1.4 + array.prototype.flatmap: ^1.2.5 + doctrine: ^2.1.0 + estraverse: ^5.3.0 + jsx-ast-utils: ^2.4.1 || ^3.0.0 + minimatch: ^3.0.4 + object.entries: ^1.1.5 + object.fromentries: ^2.0.5 + object.hasown: ^1.1.0 + object.values: ^1.1.5 + prop-types: ^15.7.2 + resolve: ^2.0.0-next.3 + semver: ^6.3.0 + string.prototype.matchall: ^4.0.6 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: 90293d0fd53bb1f735ffd32141cdd211fb1120c9f7bbe5342f9e923261a39e52a2b2575d4e46c9cd77d257f42db4a99b8b339689fc5b5c1c26048929f69b1784 + languageName: node + linkType: hard + "eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" @@ -4242,7 +4288,7 @@ __metadata: languageName: node linkType: hard -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": version: 5.3.0 resolution: "estraverse@npm:5.3.0" checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b @@ -6322,6 +6368,16 @@ __metadata: languageName: node linkType: hard +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0": + version: 3.2.1 + resolution: "jsx-ast-utils@npm:3.2.1" + dependencies: + array-includes: ^3.1.3 + object.assign: ^4.1.2 + checksum: dcee22e6382ee5a6bd4187333a44b6420d9d079838119a07055d6e88d137dd0afadc97a2246152b0b65006bd5fc393112dc0cef01956a01a66c1713913953c66 + languageName: node + linkType: hard + "junk@npm:^3.1.0": version: 3.1.0 resolution: "junk@npm:3.1.0" @@ -7034,7 +7090,9 @@ __metadata: electron-squirrel-startup: ^1.0.0 electron-store: ^8.0.1 eslint: ^7.6.0 + eslint-config-prettier: ^8.3.0 eslint-plugin-import: ^2.20.0 + eslint-plugin-react: ^7.28.0 file-loader: ^6.2.0 fork-ts-checker-webpack-plugin: ^6.0.1 jimp: ^0.16.1 @@ -7443,6 +7501,38 @@ __metadata: languageName: node linkType: hard +"object.entries@npm:^1.1.5": + version: 1.1.5 + resolution: "object.entries@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.1 + checksum: d658696f74fd222060d8428d2a9fda2ce736b700cb06f6bdf4a16a1892d145afb746f453502b2fa55d1dca8ead6f14ddbcf66c545df45adadea757a6c4cd86c7 + languageName: node + linkType: hard + +"object.fromentries@npm:^2.0.5": + version: 2.0.5 + resolution: "object.fromentries@npm:2.0.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.1 + checksum: 61a0b565ded97b76df9e30b569729866e1824cce902f98e90bb106e84f378aea20163366f66dc75c9000e2aad2ed0caf65c6f530cb2abc4c0c0f6c982102db4b + languageName: node + linkType: hard + +"object.hasown@npm:^1.1.0": + version: 1.1.0 + resolution: "object.hasown@npm:1.1.0" + dependencies: + define-properties: ^1.1.3 + es-abstract: ^1.19.1 + checksum: 5c5d0b1b793514609f7a635f3110fbd346e142c9afd2485b802775e1ef6c90e48ff6e8e8744927933370ba30964e21af9c5fcf782b47f34d650aa6b277565330 + languageName: node + linkType: hard + "object.values@npm:^1.1.5": version: 1.1.5 resolution: "object.values@npm:1.1.5" @@ -8644,7 +8734,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.2.0": +"regexp.prototype.flags@npm:^1.2.0, regexp.prototype.flags@npm:^1.3.1": version: 1.3.1 resolution: "regexp.prototype.flags@npm:1.3.1" dependencies: @@ -8796,6 +8886,16 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^2.0.0-next.3": + version: 2.0.0-next.3 + resolution: "resolve@npm:2.0.0-next.3" + dependencies: + is-core-module: ^2.2.0 + path-parse: ^1.0.6 + checksum: f34b3b93ada77d64a6d590c06a83e198f3a827624c4ec972260905fa6c4d612164fbf0200d16d2beefea4ad1755b001f4a9a1293d8fc2322a8f7d6bf692c4ff5 + languageName: node + linkType: hard + "resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin": version: 1.20.0 resolution: "resolve@patch:resolve@npm%3A1.20.0#~builtin::version=1.20.0&hash=07638b" @@ -8806,6 +8906,16 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@^2.0.0-next.3#~builtin": + version: 2.0.0-next.3 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.3#~builtin::version=2.0.0-next.3&hash=07638b" + dependencies: + is-core-module: ^2.2.0 + path-parse: ^1.0.6 + checksum: 21684b4d99a4877337cdbd5484311c811b3e8910edb5d868eec85c6e6550b0f570d911f9a384f9e176172d6713f2715bd0b0887fa512cb8c6aeece018de6a9f8 + languageName: node + linkType: hard + "responselike@npm:^1.0.2": version: 1.0.2 resolution: "responselike@npm:1.0.2" @@ -9054,7 +9164,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.2.0": +"semver@npm:^6.2.0, semver@npm:^6.3.0": version: 6.3.0 resolution: "semver@npm:6.3.0" bin: @@ -9481,6 +9591,22 @@ __metadata: languageName: node linkType: hard +"string.prototype.matchall@npm:^4.0.6": + version: 4.0.6 + resolution: "string.prototype.matchall@npm:4.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.1 + get-intrinsic: ^1.1.1 + has-symbols: ^1.0.2 + internal-slot: ^1.0.3 + regexp.prototype.flags: ^1.3.1 + side-channel: ^1.0.4 + checksum: 07aca53ddd8a096a8bd0560eb8574386c6b3887a6a06b40a98abd42c94dadeed3296261fca22fec59a1ed970d199bdeb450fcb6a7390193588d9c6b5f48fe842 + languageName: node + linkType: hard + "string.prototype.trimend@npm:^1.0.4": version: 1.0.4 resolution: "string.prototype.trimend@npm:1.0.4"