49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
import { defineConfig, globalIgnores } from 'eslint/config'
|
|
import globals from 'globals'
|
|
import path from 'node:path'
|
|
import { fileURLToPath } from 'node:url'
|
|
import js from '@eslint/js'
|
|
import { FlatCompat } from '@eslint/eslintrc'
|
|
|
|
const __filename = fileURLToPath(import.meta.url)
|
|
const __dirname = path.dirname(__filename)
|
|
const compat = new FlatCompat({
|
|
baseDirectory: __dirname,
|
|
recommendedConfig: js.configs.recommended,
|
|
allConfig: js.configs.all
|
|
})
|
|
|
|
export default defineConfig([globalIgnores([
|
|
'node_modules',
|
|
'client/lib'
|
|
]), {
|
|
extends: compat.extends('airbnb-base'),
|
|
|
|
languageOptions: { ecmaVersion: 13 },
|
|
|
|
rules: {
|
|
semi: ['error', 'never'],
|
|
|
|
'max-len': ['error', { code: 104 }],
|
|
|
|
'vars-on-top': 'off',
|
|
'class-methods-use-this': 'off',
|
|
'import/no-unresolved': 'off',
|
|
'import/extensions': ['error', 'always'],
|
|
'import/prefer-default-export': ['off'],
|
|
'no-use-before-define': ['off'],
|
|
eqeqeq: ['error', 'smart'],
|
|
'comma-dangle': ['error', 'never'],
|
|
|
|
'object-curly-newline': ['error', { multiline: true }],
|
|
|
|
'func-names': ['error', 'never'],
|
|
'space-before-function-paren': ['error', 'never'],
|
|
|
|
'lines-between-class-members': ['error', 'always', { exceptAfterSingleLine: true }],
|
|
|
|
'no-new': 'off',
|
|
'no-restricted-syntax': 'off',
|
|
'guard-for-in': 'off'
|
|
}
|
|
}])
|