feat(frontend): add ESLint and Prettier with Svelte support
- Install eslint, prettier and related plugins - Add lint and format npm scripts - Configure eslint.config.js with Svelte + TypeScript rules - Configure .prettierrc with Svelte plugin - Fix code to comply with lint rules: - Use resolve() for navigation links - Use SvelteMap for reactive maps - Use writable instead of + - Remove unused imports and variables Note: ignoreGoto is set to true due to eslint-plugin-svelte#1327
This commit is contained in:
parent
609995732b
commit
098b158b75
16 changed files with 2626 additions and 726 deletions
47
frontend/eslint.config.js
Normal file
47
frontend/eslint.config.js
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
import js from "@eslint/js";
|
||||
import svelte from "eslint-plugin-svelte";
|
||||
import ts from "typescript-eslint";
|
||||
import globals from "globals";
|
||||
|
||||
export default [
|
||||
{
|
||||
ignores: [
|
||||
".svelte-kit",
|
||||
"node_modules",
|
||||
"build",
|
||||
"dist",
|
||||
"**/paraglide/**",
|
||||
"**/lib/paraglide/**",
|
||||
],
|
||||
},
|
||||
js.configs.recommended,
|
||||
...ts.configs.recommended,
|
||||
...svelte.configs["flat/recommended"],
|
||||
{
|
||||
languageOptions: {
|
||||
ecmaVersion: "latest",
|
||||
sourceType: "module",
|
||||
globals: {
|
||||
...globals.browser,
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
"svelte/no-at-html-tags": "off",
|
||||
"svelte/require-each-key": "off",
|
||||
// TODO: Set ignoreGoto to false when https://github.com/sveltejs/eslint-plugin-svelte/issues/1327 is fixed
|
||||
// The rule doesn't detect resolve() when used with string concatenation for query params
|
||||
"svelte/no-navigation-without-resolve": [
|
||||
"error",
|
||||
{ ignoreLinks: true, ignoreGoto: true },
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["**/*.svelte"],
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
parser: ts.parser,
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
Loading…
Add table
Add a link
Reference in a new issue