Bump ESLint Typescript dependencies to latest

- Bump all ESLint dependencies related to TypeScript to their latest
  version. This was made possible by the resolution of compatibility
  issues with `@vue/eslint-config-airbnb-with-typescript`.
  See vuejs/eslint-config-airbnb#58 for details.
- Refactor code to comply with the latest linting configuration.
- Improve documentation in the ESLint configuration file to better
  describe the functionality and limitations of
  `@vue/typescript/recommended`.
  See vuejs/eslint-config-typescript#67 for details.
- Document functionality and limitation of `@vue/typescript/recommended`
  more clearly in ESLint configuration file.
This commit is contained in:
undergroundwires
2024-01-05 14:18:50 +01:00
parent dc30825232
commit bf7fb0732c
6 changed files with 964 additions and 940 deletions

View File

@@ -9,14 +9,15 @@ module.exports = {
es2022: true, // add globals and sets parserOptions.ecmaVersion to 2022 es2022: true, // add globals and sets parserOptions.ecmaVersion to 2022
}, },
extends: [ extends: [
// Vue specific rules, eslint-plugin-vue // Vue specific base rules, `eslint-plugin-vue`
'plugin:vue/vue3-recommended', 'plugin:vue/vue3-recommended',
// Extends eslint-config-airbnb // Extends `eslint-config-airbnb`
'@vue/eslint-config-airbnb-with-typescript', '@vue/eslint-config-airbnb-with-typescript',
// Extends @typescript-eslint/recommended // - Sets base parser and plugin options.
// Uses the recommended rules from the @typescript-eslint/eslint-plugin // - Includes `plugin:@typescript-eslint/recommended`. But incompatible with
// `strict-type-checked` and `stylistic-type-checked`, see https://github.com/vuejs/eslint-config-typescript/issues/67.
'@vue/typescript/recommended', '@vue/typescript/recommended',
], ],
rules: { rules: {

1864
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -45,15 +45,15 @@
}, },
"devDependencies": { "devDependencies": {
"@modyfi/vite-plugin-yaml": "^1.0.4", "@modyfi/vite-plugin-yaml": "^1.0.4",
"@rushstack/eslint-patch": "^1.5.1", "@rushstack/eslint-patch": "^1.6.1",
"@types/ace": "^0.0.49", "@types/ace": "^0.0.49",
"@types/file-saver": "^2.0.5", "@types/file-saver": "^2.0.5",
"@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/eslint-plugin": "^6.17.0",
"@typescript-eslint/parser": "^5.62.0", "@typescript-eslint/parser": "^6.17.0",
"@vitejs/plugin-legacy": "^4.1.1", "@vitejs/plugin-legacy": "^4.1.1",
"@vitejs/plugin-vue": "^4.4.0", "@vitejs/plugin-vue": "^4.4.0",
"@vue/eslint-config-airbnb-with-typescript": "^7.0.0", "@vue/eslint-config-airbnb-with-typescript": "^8.0.0",
"@vue/eslint-config-typescript": "^11.0.3", "@vue/eslint-config-typescript": "^12.0.0",
"@vue/test-utils": "^2.4.1", "@vue/test-utils": "^2.4.1",
"autoprefixer": "^10.4.16", "autoprefixer": "^10.4.16",
"cypress": "^13.3.1", "cypress": "^13.3.1",
@@ -62,9 +62,9 @@
"electron-devtools-installer": "^3.2.0", "electron-devtools-installer": "^3.2.0",
"electron-icon-builder": "^2.0.1", "electron-icon-builder": "^2.0.1",
"electron-vite": "^1.0.28", "electron-vite": "^1.0.28",
"eslint": "^8.51.0", "eslint": "^8.56.0",
"eslint-plugin-cypress": "^2.15.1", "eslint-plugin-cypress": "^2.15.1",
"eslint-plugin-vue": "^9.17.0", "eslint-plugin-vue": "^9.19.2",
"eslint-plugin-vuejs-accessibility": "^2.2.0", "eslint-plugin-vuejs-accessibility": "^2.2.0",
"icon-gen": "^4.0.0", "icon-gen": "^4.0.0",
"jsdom": "^22.1.0", "jsdom": "^22.1.0",
@@ -86,11 +86,8 @@
"yaml-lint": "^1.7.0" "yaml-lint": "^1.7.0"
}, },
"//devDependencies": { "//devDependencies": {
"terser": "Used by @vitejs/plugin-legacy for minification", "terser": "Used by `@vitejs/plugin-legacy` for minification",
"@rushstack/eslint-patch": "Needed by @vue/eslint-config-typescript", "@rushstack/eslint-patch": "Needed by `@vue/eslint-config-typescript` and `@vue/eslint-config-airbnb-with-typescript`"
"@vue/eslint-config-typescript": "Cannot upgrade to 12.X.X due to @vue/eslint-config-airbnb-with-typescript, https://github.com/vuejs/eslint-config-airbnb/issues/58",
"@typescript-eslint/eslint-plugin": "Cannot upgrade to 6.X.X due to @vue/eslint-config-airbnb-with-typescript, https://github.com/vuejs/eslint-config-airbnb/issues/58",
"@typescript-eslint/parser": "Cannot upgrade to 6.X.X due to @vue/eslint-config-airbnb-with-typescript, https://github.com/vuejs/eslint-config-airbnb/issues/58"
}, },
"homepage": "https://privacy.sexy", "homepage": "https://privacy.sexy",
"repository": { "repository": {

View File

@@ -4,7 +4,7 @@
class="card" class="card"
:class="{ :class="{
'is-collapsed': !isExpanded, 'is-collapsed': !isExpanded,
'is-inactive': activeCategoryId && activeCategoryId != categoryId, 'is-inactive': activeCategoryId && activeCategoryId !== categoryId,
'is-expanded': isExpanded, 'is-expanded': isExpanded,
}" }"
@click="isExpanded = !isExpanded" @click="isExpanded = !isExpanded"

View File

@@ -2,8 +2,8 @@
<div <div
class="checkbox" class="checkbox"
:class="{ :class="{
checked: checked, checked,
indeterminate: indeterminate, indeterminate,
}" }"
/> />
</template> </template>

View File

@@ -5,7 +5,7 @@
type="button" type="button"
class="flat-button" class="flat-button"
:class="{ :class="{
disabled: disabled, disabled,
}" }"
@click="onClicked" @click="onClicked"
> >