Add parserOptions for Svelte + TypeScript

This commit is contained in:
Romein van Buren 2024-07-25 13:17:28 +02:00
parent 27d8247ad0
commit 5d5d224d25
No known key found for this signature in database

View File

@ -2,6 +2,14 @@
const generic = require('./generic.js'); const generic = require('./generic.js');
let typescriptInstalled = true;
try {
require('typescript');
typescriptInstalled = true;
}
catch { /* not installed */ }
/** /**
* An extension on the default yeslint! generic config, with rules specific to * An extension on the default yeslint! generic config, with rules specific to
* Svelte codebases and JavaScript source code for browser environments. * Svelte codebases and JavaScript source code for browser environments.
@ -12,6 +20,7 @@ const generic = require('./generic.js');
* @type {import('eslint').Linter.Config} * @type {import('eslint').Linter.Config}
*/ */
const svelte = { const svelte = {
...generic,
parserOptions: { parserOptions: {
...generic.parserOptions, ...generic.parserOptions,
ecmaVersion: 2020, ecmaVersion: 2020,
@ -31,18 +40,16 @@ const svelte = {
...generic.plugins, ...generic.plugins,
'svelte', 'svelte',
], ],
overrides: [ { overrides: [
...generic.overrides,
{
files: '*.svelte', files: '*.svelte',
parser: 'svelte-eslint-parser', parser: 'svelte-eslint-parser',
parserOptions: typescriptInstalled ? {
parser: '@typescript-eslint/parser',
} : undefined,
rules: { rules: {
'no-inner-declarations': 0, 'no-inner-declarations': 0,
'max-len': [
'warn',
{
...generic.rules['max-len'][1],
code: 200,
},
],
'svelte/no-inner-declarations': [ 'svelte/no-inner-declarations': [
'error', 'error',
'functions', 'functions',
@ -97,7 +104,8 @@ const svelte = {
'all', 'all',
], ],
}, },
} ], },
],
rules: { rules: {
...generic.rules, ...generic.rules,
strict: 0, strict: 0,