Files
housesof/packages/config/eslintrc.config.cjs
2023-02-10 17:28:54 +01:00

79 lines
2.2 KiB
JavaScript

/** @type {import('eslint').Linter.Config} */
module.exports = {
root: true,
env: {
browser: true,
es2017: true,
node: true,
},
parserOptions: {
sourceType: 'module',
ecmaVersion: 2020,
project: './*/tsconfig.json',
extraFileExtensions: ['.svelte']
},
parser: '@typescript-eslint/parser',
plugins: [
'@typescript-eslint'
],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:svelte/recommended',
],
ignorePatterns: [
'*.d.ts',
'**/build/**', '**/node_modules/**', '**/.svelte-kit/**', '**/dist/**'
],
overrides: [
{
'files': ['*.svelte'],
'parser': 'svelte-eslint-parser',
'parserOptions': {
'parser': '@typescript-eslint/parser'
}
},
],
rules: {
/* Javascript / Typescript
========================================= */
// Use spaces over tabs
'no-tabs': 'error',
indent: ['error', 4, { SwitchCase: 1 }],
// Use single quote in javascript
quotes: ['error', 'single', {
avoidEscape: true,
allowTemplateLiterals: true
}],
// Avoid semicolons
semi: ['error', 'never'],
// Avoid ==
eqeqeq: 'error',
// Avoid trailing spaces
'no-trailing-spaces': ['error', { skipBlankLines: true }],
// Add a space between curlies
'object-curly-spacing': ['error', 'always'],
// Require a line at end of file
'eol-last': ['error', 'always'],
// Allow ts exceptions
'@typescript-eslint/ban-ts-comment': ['error', {
'ts-ignore': false,
'ts-nocheck': false,
'ts-expect-error': 'allow-with-description',
}],
/* Svelte
========================================= */
// Use double quotes
'svelte/html-quotes': ['error', {
prefer: 'double',
dynamic: {
quoted: false,
avoidInvalidUnquotedInHTML: false,
}
}],
},
settings: {
},
}