From c0bc2d7c680a42a791e7ec789442e0dd76ef913e Mon Sep 17 00:00:00 2001 From: O3H Date: Sun, 20 Oct 2024 16:15:21 +0100 Subject: [PATCH] use eslint and fix all --- frontend/.eslintrc.json | 44 ++++++++++++++++++ frontend/bun.lockb | Bin 55379 -> 102920 bytes frontend/package.json | 9 +++- .../selected-game/ConfigEditorOverlay.vue | 8 ++-- .../src/components/settings/ThemeDropdown.vue | 2 +- frontend/src/composables/dialog.ts | 2 +- frontend/src/i18n/index.ts | 8 ++-- frontend/src/mocks/GameService.ts | 4 +- frontend/src/router/routes.ts | 2 +- frontend/src/stores/game.ts | 10 ++-- frontend/src/stores/settings.ts | 8 ++-- frontend/src/types/game.ts | 1 + frontend/src/types/settings.ts | 2 +- frontend/src/types/thunderstore.ts | 1 + frontend/src/util.ts | 2 +- frontend/src/views/GameSelection.vue | 10 ++-- frontend/src/views/SelectedGame.vue | 4 +- 17 files changed, 85 insertions(+), 32 deletions(-) create mode 100644 frontend/.eslintrc.json diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json new file mode 100644 index 0000000..9f3d754 --- /dev/null +++ b/frontend/.eslintrc.json @@ -0,0 +1,44 @@ +{ + "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], + "plugins": ["@typescript-eslint", "named-import-spacing"], + "ignorePatterns": ["vite-env.d.ts"], + "parser": "@typescript-eslint/parser", + "root": true, + "env": { + "browser": true, + "node": true + }, + "rules": { + "prefer-spread": "warn", + "prefer-const": "warn", + "semi": ["error", "never"], + "comma-spacing": 2, + "comma-style": 2, + "comma-dangle": ["error", "never"], + "no-console": "off", + "no-useless-escape": "off", + "no-unused-vars": "off", + "no-undef": "off", + "no-var-requires": "off", + "no-unreachable": ["error"], + "no-unexpected-multiline": ["error"], + "no-constant-condition": "off", + "no-inner-declarations": "off", + "no-self-compare": "error", + "@typescript-eslint/no-this-alias": "off", + "@typescript-eslint/consistent-type-imports": "warn", + "@typescript-eslint/no-var-requires": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-unused-vars": ["warn", { + "args": "all", + "argsIgnorePattern": "^_", + "caughtErrors": "all", + "caughtErrorsIgnorePattern": "^_", + "destructuredArrayIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "ignoreRestSiblings": true + }], + "named-import-spacing/named-import-spacing": 2 + } +} \ No newline at end of file diff --git a/frontend/bun.lockb b/frontend/bun.lockb index 527eb3a39bccc5c0ecabb836ac77ef9037e61561..a8cc3c40190d29ad5dcf3f28b3c84cddee1b277a 100644 GIT binary patch delta 37882 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 -import { onMounted, Ref, ref, watch } from 'vue' -import { Nullable } from 'primevue/ts-helpers' +import { type Ref, ref, watch } from 'vue' +import type { Nullable } from 'primevue/ts-helpers' import { BepinexConfigFiles, ParseBepinexConfig } from '@backend/game/GameManager' import { game } from '@backend/models' -import { Dialog } from '@composables' +import type { Dialog } from '@composables' import { CardOverlay, ConfigEditLayout } from '@components' import { t } from '@i18n' import { openLink } from "../../util" -import { ThunderstoreGame } from '@types' +import type { ThunderstoreGame } from '@types' const selectedConfig: Ref> = ref(null) const selectedConfigName: Ref> = ref(null) diff --git a/frontend/src/components/settings/ThemeDropdown.vue b/frontend/src/components/settings/ThemeDropdown.vue index 5931b61..1d377a6 100644 --- a/frontend/src/components/settings/ThemeDropdown.vue +++ b/frontend/src/components/settings/ThemeDropdown.vue @@ -3,7 +3,7 @@ import { ComputedRef, computed } from 'vue' import { usePrimeVue } from 'primevue/config' import { useSettingsStore } from '@stores' -import { +import type { ChangeEvent, OptionItem, ValueItem, Theme, ThemeGroup diff --git a/frontend/src/composables/dialog.ts b/frontend/src/composables/dialog.ts index 86ca915..80eba34 100644 --- a/frontend/src/composables/dialog.ts +++ b/frontend/src/composables/dialog.ts @@ -1,4 +1,4 @@ -import { Ref, ref } from "vue" +import { type Ref, ref } from "vue" export interface Dialog extends DialogState { setVisible: (val?: boolean) => void diff --git a/frontend/src/i18n/index.ts b/frontend/src/i18n/index.ts index f860d88..7ac1eee 100644 --- a/frontend/src/i18n/index.ts +++ b/frontend/src/i18n/index.ts @@ -1,9 +1,9 @@ -import { Country } from "@types" +import type { Country } from "@types" import { useSettingsStore } from "@stores" import { storeToRefs } from "pinia" -import { ComputedRef, computed } from "vue" +import { type ComputedRef, computed } from "vue" import { createI18n } from "vue-i18n" import en from "./locales/en.json" @@ -33,10 +33,10 @@ export const countries: ComputedRef = computed(() => [{ }, { name: t('languages.fr'), code: 'fr' -},{ +}, { name: t('languages.it'), code: 'it' -},{ +}, { name: t('languages.es'), code: 'es' }]) diff --git a/frontend/src/mocks/GameService.ts b/frontend/src/mocks/GameService.ts index 0697c43..8d6b3d9 100644 --- a/frontend/src/mocks/GameService.ts +++ b/frontend/src/mocks/GameService.ts @@ -1,4 +1,4 @@ -import { ThunderstoreGame } from "@types" +import type { ThunderstoreGame } from "@types" export const mockGameList: ThunderstoreGame[] = [{ title: "Lethal Company", @@ -13,7 +13,7 @@ export const mockGameList: ThunderstoreGame[] = [{ image: "RiskOfRain2.jpg", path: "H:\\Program Files (x86)\\Steam\\steamapps\\common\\Risk of Rain 2", aliases: ["ror2"], - steamID: 248820, + steamID: 248820 }, { title: "Content Warning", identifier: 'content-warning', diff --git a/frontend/src/router/routes.ts b/frontend/src/router/routes.ts index a80d3c3..49bb53f 100644 --- a/frontend/src/router/routes.ts +++ b/frontend/src/router/routes.ts @@ -1,4 +1,4 @@ -import { RouteRecordRaw } from 'vue-router' +import type { RouteRecordRaw } from 'vue-router' const Dashboard = () => import('../views/Dashboard.vue') const GameSelection = () => import('../views/GameSelection.vue') diff --git a/frontend/src/stores/game.ts b/frontend/src/stores/game.ts index 353e05c..f99122f 100644 --- a/frontend/src/stores/game.ts +++ b/frontend/src/stores/game.ts @@ -1,14 +1,16 @@ -import { ThunderstoreGame } from '@types' +import type { ThunderstoreGame } from '@types' import { defineStore } from 'pinia' import { Save, SetFavouriteGames } from '@backend/app/Persistence' -import { Ref, computed, ref } from 'vue' -import { thunderstore } from '@backend/models.js' +import { type Ref, ref, computed } from 'vue' + import { GetPersistence } from '@backend/app/Application.js' import { BepinexInstalled } from '@backend/game/GameManager.js' - import { ExistsAtPath } from '@backend/app/Utils.js' +// eslint-disable-next-line @typescript-eslint/consistent-type-imports +import { thunderstore } from '@backend/models.js' + export interface GameState { selectedGame: ThunderstoreGame, games: Map diff --git a/frontend/src/stores/settings.ts b/frontend/src/stores/settings.ts index d5cb600..3681557 100644 --- a/frontend/src/stores/settings.ts +++ b/frontend/src/stores/settings.ts @@ -11,8 +11,8 @@ import { SetGameSelectionLayout } from '@backend/app/AppSettings.js' -import { app } from "@backend/models.js" -import { Theme } from "@types" +import type { app } from "@backend/models.js" +import type { Theme } from "@types" import { ref } from 'vue' export interface SettingsState { @@ -27,7 +27,7 @@ export const useSettingsStore = defineStore("SettingsStore", () => { label: 'Dark', value: 'aura-dark-purple' } as Theme, - animations_enabled: true, + animations_enabled: true }) const performance = ref({ @@ -38,7 +38,7 @@ export const useSettingsStore = defineStore("SettingsStore", () => { const misc = ref({ nexus_personal_key: '', update_behaviour: 2, - game_selection_layout: 'grid', + game_selection_layout: 'grid' }) //#endregion diff --git a/frontend/src/types/game.ts b/frontend/src/types/game.ts index 5c8bc94..d757247 100644 --- a/frontend/src/types/game.ts +++ b/frontend/src/types/game.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/consistent-type-imports import { thunderstore } from "@backend/models.js" export interface Game { diff --git a/frontend/src/types/settings.ts b/frontend/src/types/settings.ts index 032fbf6..924f793 100644 --- a/frontend/src/types/settings.ts +++ b/frontend/src/types/settings.ts @@ -1,4 +1,4 @@ -import { ValueItemLabeled } from "./primevue.js" +import type { ValueItemLabeled } from "./primevue.js" export interface Country { name: string diff --git a/frontend/src/types/thunderstore.ts b/frontend/src/types/thunderstore.ts index 80ea4c4..61dea65 100644 --- a/frontend/src/types/thunderstore.ts +++ b/frontend/src/types/thunderstore.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/consistent-type-imports import { thunderstore, v1 } from "@backend/models.js" export type Package = thunderstore.StrippedPackage & { diff --git a/frontend/src/util.ts b/frontend/src/util.ts index fc10271..770ab74 100644 --- a/frontend/src/util.ts +++ b/frontend/src/util.ts @@ -1,5 +1,5 @@ import { OpenExternal } from "@backend/app/Application.js" -import { TooltipOptions } from "primevue/tooltip" +import { type TooltipOptions } from "primevue/tooltip" const tooltipTextStyle = { fontSize: '14.5px' diff --git a/frontend/src/views/GameSelection.vue b/frontend/src/views/GameSelection.vue index c813931..a7134b9 100644 --- a/frontend/src/views/GameSelection.vue +++ b/frontend/src/views/GameSelection.vue @@ -1,8 +1,8 @@