eslint-config/.eslintrc.json

135 lines
3.2 KiB
JSON

{
"root": true,
"env": {
"browser": true,
"es2022": true,
"jest": true,
"node": true
},
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": "latest",
"sourceType": "module"
},
"extends": [
"eslint:recommended",
"plugin:vue/vue3-essential",
"plugin:prettier/recommended",
"plugin:@typescript-eslint/recommended"
],
"plugins": [
"jest",
"cypress",
"import",
"prettier",
"@typescript-eslint"
],
"overrides": [
{
"files": ["*.ts", "*.tsx"],
"plugins": [
"@typescript-eslint"
],
"rules": {
"no-var": "error",
"no-dupe-class-members": "off",
"no-undef": "off",
"no-redeclare": "off",
"@typescript-eslint/no-redeclare": ["warn"],
"@typescript-eslint/consistent-type-assertions": ["warn"],
"no-array-constructor": "off",
"@typescript-eslint/no-array-constructor": ["warn"],
"no-use-before-define": "off",
"@typescript-eslint/no-use-before-define": [
"warn",
{
"functions": false,
"classes": false,
"variables": false,
"typedefs": false
}
],
"no-unused-expressions": "off",
"@typescript-eslint/no-unused-expressions": [
"warn",
{
"allowShortCircuit": true,
"allowTernary": true,
"allowTaggedTemplates": true
}
],
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": [
"warn",
{
"args": "none",
"ignoreRestSiblings": true
}
],
"no-useless-constructor": "off",
"@typescript-eslint/no-useless-constructor": ["warn"]
}
},
{
"files": ["test/**"],
"plugins": ["jest"],
"extends": ["plugin:jest/recommended", "plugin:jest/style"],
"rules": { "jest/prefer-expect-assertions": "off" }
},
{
"files": ["cypress/e2e/**/*.cy.ts"],
"extends": ["plugin:cypress/recommended"],
"rules": {
"@typescript-eslint/no-unused-expressions": "off",
"@typescript-eslint/no-empty-function": "off",
"spaced-comment": "off",
"camelcase": "off"
}
}
],
"rules": {
"no-undef-init": "warn",
"no-useless-return": "warn",
"no-duplicate-imports": "warn",
"import/first": "warn",
"import/no-anonymous-default-export": [
"warn",
{
"allowArray": true,
"allowLiteral": true,
"allowObject": true
}
],
"prefer-const": "warn",
"prefer-spread": "warn",
"camelcase": "error",
"spaced-comment": "error",
"dot-notation": "warn",
"quotes": ["error", "single"],
"prettier/prettier": [
"warn",
{
"printWidth": 120,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"endOfLine": "auto",
"jsxSingleQuote": false,
"bracketSpacing": true,
"bracketSameLine": false,
"arrowParens": "always",
"trailingComma": "es5"
}
]
},
"settings": {
"import/resolver": {
"typescript": {}
}
}
}