Merge pull request #527 from Proxyfil/fix/frontend-format-lint

This commit is contained in:
Marlon
2026-04-08 09:59:03 +02:00
committed by GitHub
6 changed files with 269 additions and 57 deletions
+2 -2
View File
@@ -24,9 +24,9 @@ jobs:
with:
fetch-depth: 1
- uses: pnpm/action-setup@v2.2.4
- uses: pnpm/action-setup@v5.0.0
with:
version: 8.14.0
version: 10.24.0
working-directory: ./frontend
- name: Install dependencies
-36
View File
@@ -1,36 +0,0 @@
// SPDX-FileCopyrightText: 2023 Marlon W (Mawoka)
//
// SPDX-License-Identifier: MPL-2.0
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
plugins: ['svelte3', '@typescript-eslint'],
ignorePatterns: ['*.cjs'],
overrides: [
{ files: ['*.svelte'], processor: 'svelte3/svelte3' },
{
files: ['*.*'],
rules: {
'a11y-click-events-have-key-events': 'off'
}
}
],
rules: {
'no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }]
},
settings: {
'svelte3/typescript': () => require('typescript')
},
parserOptions: {
sourceType: 'module',
ecmaVersion: 2020
},
env: {
browser: true,
es2017: true,
node: true
}
};
+8
View File
@@ -0,0 +1,8 @@
# SPDX-FileCopyrightText: 2023 Marlon W (Mawoka)
#
# SPDX-License-Identifier: MPL-2.0
.gitignore
src/lib/i18n/locales/*.json
pnpm-lock.yaml
src/app.html
+88
View File
@@ -0,0 +1,88 @@
// SPDX-FileCopyrightText: 2023 Marlon W (Mawoka)
//
// SPDX-License-Identifier: MPL-2.0
const { defineConfig, globalIgnores } = require('eslint/config');
const tsParser = require('@typescript-eslint/parser');
const typescriptEslint = require('@typescript-eslint/eslint-plugin');
const globals = require('globals');
const js = require('@eslint/js');
const svelte = require('eslint-plugin-svelte');
module.exports = defineConfig([
js.configs.recommended,
svelte.configs.recommended,
globalIgnores(['**/*.cjs', 'src/app.html']),
{
languageOptions: {
sourceType: 'module',
ecmaVersion: 2020,
globals: {
...globals.browser,
...globals.node
}
}
},
{
files: ['**/*.{ts,js}'],
languageOptions: {
parser: tsParser
},
plugins: {
'@typescript-eslint': typescriptEslint
},
rules: {
'no-unused-vars': [
'error',
{
argsIgnorePattern: '^_.*'
}
],
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_.*'
}
]
}
},
{
files: ['**/*.svelte'],
languageOptions: {
parserOptions: {
parser: tsParser,
extraFileExtensions: ['.svelte']
}
}
},
{
files: ['**/*.svelte', '**/*.ts', '**/*.js'],
rules: {
'a11y-click-events-have-key-events': 'off',
'no-unused-vars': [
'error',
{
argsIgnorePattern: '^_.*'
}
],
'@typescript-eslint/no-unused-vars': [
'error',
{
argsIgnorePattern: '^_.*'
}
],
'svelte/no-at-html-tags': 'warn',
'svelte/require-each-key': 'warn'
},
plugins: {
'@typescript-eslint': typescriptEslint
}
}
]);
+5 -3
View File
@@ -8,9 +8,9 @@
"preview": "vite preview",
"check": "svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "prettier --ignore-path .gitignore --check --plugin-search-dir=. . '!src/lib/i18n/locales/*.json' '!pnpm-lock.yaml' '!src/app.html' && eslint --ignore-path .gitignore .",
"lint-without-format-checking": "eslint --ignore-path .gitignore .",
"format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. . '!src/lib/i18n/locales/*.json'",
"lint": "prettier --check --plugin-search-dir=. . '!src/lib/i18n/locales/*.json' '!pnpm-lock.yaml' '!src/app.html' && eslint .",
"lint-without-format-checking": "eslint .",
"format": "prettier --write --plugin-search-dir=. . '!src/lib/i18n/locales/*.json'",
"run:prod": "node index.js",
"translations-scan": "i18next-scanner --config i18next-scanner.config.engine.cjs src/**/*.svelte"
},
@@ -58,6 +58,7 @@
"dompurify": "^3.3.0",
"eslint": "^9.38.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-svelte": "^3.17.0",
"felte": "^1.3.0",
"fuse.js": "^7.1.0",
"highlight.js": "^11.11.1",
@@ -82,6 +83,7 @@
"socket.io-client": "^4.8.1",
"svelte": "^5.42.2",
"svelte-check": "^4.3.3",
"svelte-eslint-parser": "^1.6.0",
"svelte-preprocess": "^6.0.3",
"svelte-range-slider-pips": "^4.1.0",
"svelte-tippy": "^1.3.2",
+166 -16
View File
@@ -136,6 +136,9 @@ importers:
eslint-config-prettier:
specifier: ^10.1.8
version: 10.1.8(eslint@9.38.0(jiti@2.6.1))
eslint-plugin-svelte:
specifier: ^3.17.0
version: 3.17.0(eslint@9.38.0(jiti@2.6.1))(svelte@5.42.2)
felte:
specifier: ^1.3.0
version: 1.3.0(svelte@5.42.2)
@@ -208,6 +211,9 @@ importers:
svelte-check:
specifier: ^4.3.3
version: 4.3.3(picomatch@4.0.3)(svelte@5.42.2)(typescript@5.9.3)
svelte-eslint-parser:
specifier: ^1.6.0
version: 1.6.0(svelte@5.42.2)
svelte-preprocess:
specifier: ^6.0.3
version: 6.0.3(postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1))(postcss@8.5.6)(sass@1.93.2)(svelte@5.42.2)(typescript@5.9.3)
@@ -2850,6 +2856,19 @@ packages:
peerDependencies:
eslint: '>=7.0.0'
eslint-plugin-svelte@3.17.0:
resolution:
{
integrity: sha512-sF6wgd5FLS2P8CCaOy2HdYYYEcZ6TwL251dLHUkNmtLnWECk1Dwc+j6VeulmmnFxr7Xs0WNtjweOA+bJ0PnaFw==
}
engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 }
peerDependencies:
eslint: ^8.57.1 || ^9.0.0 || ^10.0.0
svelte: ^3.37.0 || ^4.0.0 || ^5.0.0
peerDependenciesMeta:
svelte:
optional: true
eslint-scope@8.4.0:
resolution:
{
@@ -3109,6 +3128,13 @@ packages:
}
engines: { node: '>=18' }
globals@16.5.0:
resolution:
{
integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==
}
engines: { node: '>=18' }
graceful-fs@4.2.11:
resolution:
{
@@ -3445,6 +3471,12 @@ packages:
}
engines: { node: '>=6' }
known-css-properties@0.37.0:
resolution:
{
integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==
}
konva@9.3.22:
resolution:
{
@@ -3564,6 +3596,13 @@ packages:
}
engines: { node: '>= 12.0.0' }
lilconfig@2.1.0:
resolution:
{
integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
}
engines: { node: '>=10' }
lilconfig@3.1.3:
resolution:
{
@@ -4236,6 +4275,21 @@ packages:
peerDependencies:
postcss: ^8.0.0
postcss-load-config@3.1.4:
resolution:
{
integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
}
engines: { node: '>= 10' }
peerDependencies:
postcss: '>=8.0.9'
ts-node: '>=9.0.0'
peerDependenciesMeta:
postcss:
optional: true
ts-node:
optional: true
postcss-load-config@6.0.1:
resolution:
{
@@ -4419,6 +4473,24 @@ packages:
peerDependencies:
postcss: ^8.4.32
postcss-safe-parser@7.0.1:
resolution:
{
integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==
}
engines: { node: '>=18.0' }
peerDependencies:
postcss: ^8.4.31
postcss-scss@4.0.9:
resolution:
{
integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==
}
engines: { node: '>=12.0' }
peerDependencies:
postcss: ^8.4.29
postcss-selector-parser@6.0.10:
resolution:
{
@@ -4839,6 +4911,18 @@ packages:
svelte: ^4.0.0 || ^5.0.0-next.0
typescript: '>=5.0.0'
svelte-eslint-parser@1.6.0:
resolution:
{
integrity: sha512-qoB1ehychT6OxEtQAqc/guSqLS20SlA53Uijl7x375s8nlUT0lb9ol/gzraEEatQwsyPTJo87s2CmKL9Xab+Uw==
}
engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.30.3 }
peerDependencies:
svelte: ^3.37.0 || ^4.0.0 || ^5.0.0
peerDependenciesMeta:
svelte:
optional: true
svelte-preprocess@6.0.3:
resolution:
{
@@ -5300,6 +5384,13 @@ packages:
integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
}
yaml@1.10.3:
resolution:
{
integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==
}
engines: { node: '>= 6' }
yaml@2.8.1:
resolution:
{
@@ -5357,6 +5448,8 @@ snapshots:
'@ckeditor/ckeditor5-core': 47.1.0
'@ckeditor/ckeditor5-upload': 47.1.0
ckeditor5: 47.1.0
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-alignment@47.1.0':
dependencies:
@@ -5458,12 +5551,16 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.1.0
'@ckeditor/ckeditor5-widget': 47.1.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-cloud-services@47.1.0':
dependencies:
'@ckeditor/ckeditor5-core': 47.1.0
'@ckeditor/ckeditor5-utils': 47.1.0
ckeditor5: 47.1.0
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-code-block@47.1.0':
dependencies:
@@ -5506,6 +5603,8 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.1.0
ckeditor5: 47.1.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-editor-classic@47.1.0':
dependencies:
@@ -5515,6 +5614,8 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.1.0
ckeditor5: 47.1.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-editor-decoupled@47.1.0':
dependencies:
@@ -5524,6 +5625,8 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.1.0
ckeditor5: 47.1.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-editor-inline@47.1.0':
dependencies:
@@ -5533,6 +5636,8 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.1.0
ckeditor5: 47.1.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-editor-multi-root@47.1.0':
dependencies:
@@ -5563,6 +5668,8 @@ snapshots:
dependencies:
'@ckeditor/ckeditor5-utils': 47.1.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-enter@47.1.0':
dependencies:
@@ -5591,6 +5698,8 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.1.0
ckeditor5: 47.1.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-font@47.1.0':
dependencies:
@@ -5645,6 +5754,8 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.1.0
'@ckeditor/ckeditor5-widget': 47.1.0
ckeditor5: 47.1.0
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-html-embed@47.1.0':
dependencies:
@@ -5782,8 +5893,6 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.1.0
'@ckeditor/ckeditor5-widget': 47.1.0
ckeditor5: 47.1.0
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-mention@47.1.0':
dependencies:
@@ -5803,8 +5912,6 @@ snapshots:
'@ckeditor/ckeditor5-ui': 47.1.0
'@ckeditor/ckeditor5-utils': 47.1.0
ckeditor5: 47.1.0
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-page-break@47.1.0':
dependencies:
@@ -5814,8 +5921,6 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.1.0
'@ckeditor/ckeditor5-widget': 47.1.0
ckeditor5: 47.1.0
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-paragraph@47.1.0':
dependencies:
@@ -5839,8 +5944,6 @@ snapshots:
'@ckeditor/ckeditor5-ui': 47.1.0
'@ckeditor/ckeditor5-utils': 47.1.0
ckeditor5: 47.1.0
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-restricted-editing@47.1.0':
dependencies:
@@ -5866,8 +5969,6 @@ snapshots:
'@ckeditor/ckeditor5-ui': 47.1.0
'@ckeditor/ckeditor5-utils': 47.1.0
ckeditor5: 47.1.0
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-source-editing@47.1.0':
dependencies:
@@ -5898,8 +5999,6 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.1.0
ckeditor5: 47.1.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-table@47.1.0':
dependencies:
@@ -5912,8 +6011,6 @@ snapshots:
'@ckeditor/ckeditor5-widget': 47.1.0
ckeditor5: 47.1.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-theme-lark@47.1.0':
dependencies:
@@ -5968,6 +6065,8 @@ snapshots:
'@ckeditor/ckeditor5-engine': 47.1.0
'@ckeditor/ckeditor5-utils': 47.1.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@ckeditor/ckeditor5-widget@47.1.0':
dependencies:
@@ -5987,8 +6086,6 @@ snapshots:
'@ckeditor/ckeditor5-utils': 47.1.0
ckeditor5: 47.1.0
es-toolkit: 1.39.5
transitivePeerDependencies:
- supports-color
'@esbuild/aix-ppc64@0.25.11':
optional: true
@@ -7356,6 +7453,24 @@ snapshots:
dependencies:
eslint: 9.38.0(jiti@2.6.1)
eslint-plugin-svelte@3.17.0(eslint@9.38.0(jiti@2.6.1))(svelte@5.42.2):
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1))
'@jridgewell/sourcemap-codec': 1.5.5
eslint: 9.38.0(jiti@2.6.1)
esutils: 2.0.3
globals: 16.5.0
known-css-properties: 0.37.0
postcss: 8.5.6
postcss-load-config: 3.1.4(postcss@8.5.6)
postcss-safe-parser: 7.0.1(postcss@8.5.6)
semver: 7.7.3
svelte-eslint-parser: 1.6.0(svelte@5.42.2)
optionalDependencies:
svelte: 5.42.2
transitivePeerDependencies:
- ts-node
eslint-scope@8.4.0:
dependencies:
esrecurse: 4.3.0
@@ -7513,6 +7628,8 @@ snapshots:
globals@14.0.0: {}
globals@16.5.0: {}
graceful-fs@4.2.11: {}
graphemer@1.4.0: {}
@@ -7718,6 +7835,8 @@ snapshots:
kleur@4.1.5: {}
known-css-properties@0.37.0: {}
konva@9.3.22: {}
levn@0.4.1:
@@ -7774,6 +7893,8 @@ snapshots:
lightningcss-win32-arm64-msvc: 1.30.2
lightningcss-win32-x64-msvc: 1.30.2
lilconfig@2.1.0: {}
lilconfig@3.1.3: {}
locate-character@3.0.0: {}
@@ -8287,6 +8408,13 @@ snapshots:
read-cache: 1.0.0
resolve: 1.22.11
postcss-load-config@3.1.4(postcss@8.5.6):
dependencies:
lilconfig: 2.1.0
yaml: 1.10.3
optionalDependencies:
postcss: 8.5.6
postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1):
dependencies:
lilconfig: 3.1.3
@@ -8396,6 +8524,14 @@ snapshots:
postcss: 8.5.6
postcss-value-parser: 4.2.0
postcss-safe-parser@7.0.1(postcss@8.5.6):
dependencies:
postcss: 8.5.6
postcss-scss@4.0.9(postcss@8.5.6):
dependencies:
postcss: 8.5.6
postcss-selector-parser@6.0.10:
dependencies:
cssesc: 3.0.0
@@ -8676,6 +8812,18 @@ snapshots:
transitivePeerDependencies:
- picomatch
svelte-eslint-parser@1.6.0(svelte@5.42.2):
dependencies:
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1
espree: 10.4.0
postcss: 8.5.6
postcss-scss: 4.0.9(postcss@8.5.6)
postcss-selector-parser: 7.1.0
semver: 7.7.3
optionalDependencies:
svelte: 5.42.2
svelte-preprocess@6.0.3(postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.1))(postcss@8.5.6)(sass@1.93.2)(svelte@5.42.2)(typescript@5.9.3):
dependencies:
svelte: 5.42.2
@@ -8915,6 +9063,8 @@ snapshots:
y18n@4.0.3: {}
yaml@1.10.3: {}
yaml@2.8.1:
optional: true