136 lines
3.8 KiB
JavaScript
136 lines
3.8 KiB
JavaScript
module.exports = {
|
|
root: true,
|
|
parser: '@typescript-eslint/parser',
|
|
plugins: [
|
|
'svelte3',
|
|
'@typescript-eslint',
|
|
'import',
|
|
'simple-import-sort',
|
|
],
|
|
parserOptions: {
|
|
tsconfigRootDir: __dirname,
|
|
project: [
|
|
'./tsconfig.test.json',
|
|
'./src/tsconfig.json',
|
|
'./src/common/tsconfig.json',
|
|
'./src/assets/ts/tsconfig.eslint.json',
|
|
'./src/assets/views/tsconfig.json',
|
|
]
|
|
},
|
|
extends: [
|
|
'eslint:recommended',
|
|
'plugin:@typescript-eslint/recommended',
|
|
],
|
|
rules: {
|
|
indent: [
|
|
'error',
|
|
4,
|
|
{
|
|
SwitchCase: 1
|
|
}
|
|
],
|
|
'no-trailing-spaces': 'error',
|
|
'max-len': [
|
|
'error',
|
|
{
|
|
code: 120,
|
|
ignoreTemplateLiterals: true,
|
|
ignoreRegExpLiterals: true
|
|
}
|
|
],
|
|
semi: 'off',
|
|
'@typescript-eslint/semi': [
|
|
'error'
|
|
],
|
|
'no-extra-semi': 'error',
|
|
'eol-last': 'error',
|
|
'comma-dangle': 'off',
|
|
'simple-import-sort/imports': 'error',
|
|
'no-extra-parens': 'off',
|
|
'no-nested-ternary': 'error',
|
|
'no-return-await': 'off',
|
|
'no-useless-return': 'error',
|
|
'no-useless-constructor': 'off',
|
|
'import/extensions': ['error', 'ignorePackages'],
|
|
'@typescript-eslint/comma-dangle': [
|
|
'error',
|
|
{
|
|
arrays: 'always-multiline',
|
|
objects: 'always-multiline',
|
|
imports: 'always-multiline',
|
|
exports: 'always-multiline',
|
|
functions: 'always-multiline',
|
|
enums: 'always-multiline',
|
|
generics: 'always-multiline',
|
|
tuples: 'always-multiline'
|
|
}
|
|
],
|
|
'@typescript-eslint/no-extra-parens': [
|
|
'error'
|
|
],
|
|
'@typescript-eslint/no-inferrable-types': 'off',
|
|
'@typescript-eslint/explicit-module-boundary-types': 'error',
|
|
'@typescript-eslint/no-unnecessary-condition': 'error',
|
|
'@typescript-eslint/no-unused-vars': [
|
|
'error',
|
|
{
|
|
argsIgnorePattern: '^_'
|
|
}
|
|
],
|
|
'@typescript-eslint/no-non-null-assertion': 'error',
|
|
'@typescript-eslint/no-useless-constructor': [
|
|
'error'
|
|
],
|
|
'@typescript-eslint/return-await': [
|
|
'error',
|
|
'always'
|
|
],
|
|
'@typescript-eslint/explicit-member-accessibility': [
|
|
'error',
|
|
{
|
|
accessibility: 'explicit'
|
|
}
|
|
],
|
|
'@typescript-eslint/no-floating-promises': 'error',
|
|
},
|
|
ignorePatterns: [
|
|
'.eslintrc.js',
|
|
'rollup.config.js',
|
|
'jest.config.js',
|
|
'dist/**/*',
|
|
'config/**/*',
|
|
'intermediates/**/*',
|
|
'public/**/*',
|
|
'scripts/**/*',
|
|
'src/frontend/register_svelte/register_svelte.js',
|
|
],
|
|
overrides: [
|
|
{
|
|
files: [
|
|
'test/**/*'
|
|
],
|
|
rules: {
|
|
'max-len': [
|
|
'error',
|
|
{
|
|
code: 120,
|
|
ignoreTemplateLiterals: true,
|
|
ignoreRegExpLiterals: true,
|
|
ignoreStrings: true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
files: ['*.svelte'],
|
|
processor: 'svelte3/svelte3'
|
|
}
|
|
],
|
|
settings: {
|
|
'svelte3/typescript': require('typescript'),
|
|
'svelte3/ignore-styles': function (attributes) {
|
|
return !!(attributes['lang'] && attributes['lang'] !== 'css');
|
|
}
|
|
},
|
|
}
|