MangoRecipe/.eslintrc

118 lines
4.2 KiB
Plaintext

{
"env": {
"es6": true,
"amd": true,
"browser": true
},
"root": true,
"ignorePatterns": ["docs/", "dist/", "out/", "rethinkdb_data/", "node_modules/", "bulmaselect/"],
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 2020
},
"extends": ["eslint:recommended"],
"rules": {
"arrow-parens": [1, "always"],
"block-spacing": [1, "always"],
"brace-style": [1, "1tbs", { "allowSingleLine": true }],
"comma-dangle": [1, "always-multiline"],
"comma-spacing": [1, { "before": false, "after": true }],
"comma-style": [1, "last"],
"computed-property-spacing": [1, "never"],
"consistent-this": [1, "self"],
"eol-last": 1,
"eqeqeq": [1, "smart"],
"no-inline-comments": 1,
"jsx-quotes": [1, "prefer-double"],
"lines-around-comment": [1, { "beforeBlockComment": false }],
"max-depth": [1, 8],
"max-nested-callbacks": [1, 8],
"new-parens": 1,
"no-array-constructor": 1,
"no-lonely-if": 1,
"no-mixed-spaces-and-tabs": 1,
"no-multiple-empty-lines": 1,
"no-new-object": 1,
"no-spaced-func": 1,
"no-trailing-spaces": 1,
"no-return-await": 1,
"no-undef": 0,
"no-unneeded-ternary": 1,
"no-var": 1,
"object-curly-spacing": [1, "always"],
"operator-linebreak": [1, "after"],
"padded-blocks": [1, "never"],
"prefer-const": ["error", { "destructuring": "any", "ignoreReadBeforeAssign": false }],
"quotes": [1, "double", { "avoidEscape": true, "allowTemplateLiterals": false }],
"quote-props": [1, "consistent-as-needed"],
"semi": [1, "always"],
"semi-spacing": [1, { "before": false, "after": true }],
"space-before-blocks": [1, "always"],
"space-in-parens": [1, "never"],
"space-infix-ops": [1, { "int32Hint": true }],
"spaced-comment": [1, "always"],
"sort-imports": [
"warn",
{
"ignoreCase": false,
"ignoreDeclarationSort": true,
"ignoreMemberSort": false,
"memberSyntaxSortOrder": ["none", "all", "multiple", "single"],
"allowSeparatedGroups": false
}
]
},
// Typescript overrides
"overrides": [
{
"files": ["*.ts", "*.tsx"],
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
],
// Enable if you need jsx support
// "parserOptions": {
// "ecmaFeatures": { "jsx": true }
// },
"rules": {
"semi": "off",
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/member-delimiter-style": "error",
"@typescript-eslint/member-ordering": "error",
"@typescript-eslint/type-annotation-spacing": "error",
"@typescript-eslint/semi": [1, "always"],
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/no-var-requires": 0,
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/naming-convention": [
"warn",
{ "selector": "default", "format": ["camelCase"] },
{ "selector": "variableLike", "format": ["camelCase"] },
{ "selector": "variable", "format": ["camelCase", "UPPER_CASE", "PascalCase"] },
{ "selector": "parameter", "format": ["camelCase"], "leadingUnderscore": "allow" },
{ "selector": "memberLike", "format": ["camelCase"] },
{ "selector": "memberLike", "modifiers": ["private"], "format": ["camelCase"], "leadingUnderscore": "require" },
{ "selector": "typeLike", "format": null },
{ "selector": "typeAlias", "format": null },
{ "selector": "typeProperty", "format": null },
{ "selector": "typeParameter", "format": ["PascalCase"], "prefix": ["T"] },
{ "selector": "interface", "format": ["PascalCase"], "custom": { "regex": "^I[A-Z]", "match": false } },
{ "selector": "objectLiteralProperty", "format": null },
{ "selector": "enumMember", "format": ["UPPER_CASE"] }
]
}
}
]
}