1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2025-04-27 08:38:26 -04:00
jarv.is/.eslintrc.json

152 lines
4.0 KiB
JSON

{
"extends": [
"eslint:recommended",
"plugin:compat/recommended",
"plugin:import/recommended",
"plugin:no-unsanitized/DOM",
"plugin:lit/recommended",
"plugin:prettier/recommended"
],
"plugins": [
"prettier"
],
"parser": "@babel/eslint-parser",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module",
"allowImportExportEverywhere": false,
"requireConfigFile": false,
"babelOptions": {
"presets": [
[
"@babel/preset-env"
]
]
}
},
"env": {
"browser": true,
"es6": true
},
"rules": {
// Stylistic:
"brace-style": "error",
"camelcase": ["error", {
"properties": "never",
"ignoreDestructuring": true
}],
"comma-dangle": ["error", "always-multiline"],
"comma-spacing": "error",
"comma-style": "error",
"curly": ["error", "multi-or-nest", "consistent"],
"func-call-spacing": "error",
// "indent": ["error", 2, {
// "ignoredNodes": ["JSXElement", "JSXElement > *", "JSXAttribute", "JSXIdentifier", "JSXNamespacedName", "JSXMemberExpression", "JSXSpreadAttribute", "JSXExpressionContainer", "JSXOpeningElement", "JSXClosingElement", "JSXFragment", "JSXOpeningFragment", "JSXClosingFragment", "JSXText", "JSXEmptyExpression", "JSXSpreadChild"]
// }],
"max-len": ["error", {
"code": 100,
"tabWidth": 2,
"ignoreUrls": true,
"ignoreComments": false,
"ignoreStrings": true,
"ignoreRegExpLiterals": true,
"ignoreTemplateLiterals": true
}],
"no-multiple-empty-lines": ["error", { "max": 1 }],
"no-tabs": "error",
"no-trailing-spaces": "error",
"object-curly-spacing": ["error", "always"],
"one-var": ["error", {
"var": "never",
"let": "never",
"const": "never"
}],
"operator-linebreak": ["error", "after"],
"padded-blocks": ["error", "never"],
"quote-props": ["error", "consistent"],
"quotes": ["error", "double", {
"avoidEscape": true,
"allowTemplateLiterals": true
}],
"semi": "error",
"semi-spacing": "error",
"space-before-blocks": "error",
"space-before-function-paren": ["error", {
"named": "never",
"anonymous": "always",
"asyncArrow": "always"
}],
"spaced-comment": ["error", "always", {
"line": {
"markers": ["/"],
"exceptions": ["-", "+"]
},
"block": {
"markers": ["!"],
"exceptions": ["*"],
"balanced": true
}
}],
"template-tag-spacing": ["error", "never"],
// ES6:
"arrow-body-style": ["error", "as-needed", { "requireReturnForObjectLiteral": false }],
"arrow-parens": ["error", "always"],
"arrow-spacing": ["error", { "before": true, "after": true }],
"no-confusing-arrow": ["error", { "allowParens": true }],
"no-var": "error",
"prefer-const": ["error", {
"destructuring": "any",
"ignoreReadBeforeAssign": true
}],
"prefer-destructuring": ["error", {
"VariableDeclarator": {
"array": false,
"object": true
},
"AssignmentExpression": {
"array": true,
"object": false
}
}],
"prefer-rest-params": "error",
"prefer-spread": "error",
"template-curly-spacing": "error"
},
"overrides": [{
"files": [
"api/**/*.ts"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:import/recommended",
"plugin:import/typescript",
"plugin:prettier/recommended"
],
"plugins": [
"@typescript-eslint",
"prettier"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": ["./tsconfig.json"]
},
"rules": {
"@typescript-eslint/restrict-template-expressions": "off"
},
"env": {
"browser": false,
"node": true
}
}],
"ignorePatterns": [
"public/**",
"static/assets/**",
"*.d.ts",
"gulpfile.js",
"webpack.config.js"
]
}