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'); } }, }