diff --git a/.eslintrc.json b/.eslintrc.json index f1e71ebd0f..7c39d5de18 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -152,142 +152,169 @@ "compose_ui": false }, "rules": { - "no-restricted-syntax": 0, - "no-nested-ternary": 0, - "spaced-comment": 0, - "space-infix-ops": 0, - "newline-per-chained-call": 0, - "no-whitespace-before-property": 0, - "padded-blocks": 0, - "space-in-parens": 0, - "eol-last": ["error", "always"], - "no-unneeded-ternary": ["error", { "defaultAssignment": false }], - "no-case-declarations": "error", - "eqeqeq": ["error", "allow-null"], - "no-duplicate-imports": "error", - "no-undef": "error", - "dot-notation": ["error", { "allowKeywords": true }], - "no-iterator": "error", - "no-dupe-class-members": "error", - "no-useless-constructor": "error", - "prefer-const": ["error", { - "destructuring": "any", - "ignoreReadBeforeAssign": true - }], - "no-const-assign": "error", - "no-new-object": 2, - "quote-props": ["error", "as-needed", { - "keywords": false, - "unnecessary": true, - "numbers": false - }], - "no-array-constructor": "error", "array-callback-return": "error", - "template-curly-spacing": "error", - //The Zulip codebase complies partially with the "no-useless-escape" rule; only regex expressions haven't been updated yet. - //Updated regex expressions are currently being tested in casper files and will decide about a potential future enforcement of this rule. - "no-useless-escape": 0, - "func-style": ["off", "expression"], - "wrap-iife": ["error", "outside", { "functionPrototypeMethods": false }], - "no-new-func": "error", - "space-before-function-paren": ["error", { "anonymous": "always", "named": "never", "asyncArrow": "always" }], - "no-param-reassign": 0, - "arrow-spacing": ["error", { "before": true, "after": true }], + "arrow-spacing": [ "error", { "before": true, "after": true } ], + "block-scoped-var": 2, + "brace-style": [ "error", "1tbs", { "allowSingleLine": true } ], + "camelcase": 0, + "comma-dangle": [ "error", + { + "arrays": "always-multiline", + "objects": "always-multiline", + "imports": "always-multiline", + "exports": "always-multiline", + "functions": "never" + } + ], + "complexity": [ 0, 4 ], + "curly": 2, + "dot-notation": [ "error", { "allowKeywords": true } ], + "eol-last": [ "error", "always" ], + "eqeqeq": [ "error", "allow-null" ], + "func-style": [ "off", "expression" ], + "guard-for-in": 2, + "keyword-spacing": [ "error", + { + "before": true, + "after": true, + "overrides": { + "return": { "after": true }, + "throw": { "after": true }, + "case": { "after": true } + } + } + ], + "max-depth": [ 0, 4 ], + "max-len": [ "error", 100, 2, + { + "ignoreUrls": true, + "ignoreComments": false, + "ignoreRegExpLiterals": true, + "ignoreStrings": true, + "ignoreTemplateLiterals": true + } + ], + "max-params": [ 0, 3 ], + "max-statements": [ 0, 10 ], + "new-cap": [ "error", + { + "newIsCap": true, + "capIsNew": false + } + ], + "new-parens": 2, + "newline-per-chained-call": 0, "no-alert": 2, - "no-caller": 2, + "no-array-constructor": "error", "no-bitwise": 2, + "no-caller": 2, + "no-case-declarations": "error", "no-catch-shadow": 2, - "comma-dangle": ["error", { - "arrays": "always-multiline", - "objects": "always-multiline", - "imports": "always-multiline", - "exports": "always-multiline", - "functions": "never" - }], "no-console": 0, + "no-const-assign": "error", "no-control-regex": 2, "no-debugger": 2, + "no-delete-var": 2, "no-div-regex": 2, + "no-dupe-class-members": "error", "no-dupe-keys": 2, + "no-duplicate-imports": "error", "no-else-return": 2, "no-empty": 2, "no-empty-character-class": 2, "no-eq-null": 2, "no-eval": 2, "no-ex-assign": 2, + "no-extra-parens": [ "error", "functions" ], "no-extra-semi": 2, - "no-func-assign": 2, - "no-floating-decimal": 2, - "no-implied-eval": 2, - "no-with": 2, "no-fallthrough": 2, - "no-unreachable": 2, - "no-undef-init": 2, - "no-unused-expressions": 2, + "no-floating-decimal": 2, + "no-func-assign": 2, + "no-implied-eval": 2, + "no-iterator": "error", + "no-label-var": 2, + "no-labels": 2, + "no-loop-func": 2, + "no-mixed-requires": [ 0, false ], + "no-multi-str": 2, + "no-native-reassign": 2, + "no-nested-ternary": 0, + "no-new": 2, + "no-new-func": "error", + "no-new-object": 2, + "no-new-wrappers": 2, + "no-obj-calls": 2, "no-octal": 2, "no-octal-escape": 2, - "no-obj-calls": 2, - "no-multi-str": 2, - "no-new-wrappers": 2, - "no-new": 2, - "no-native-reassign": 2, + "no-param-reassign": 0, "no-plusplus": 2, - "no-delete-var": 2, - "no-return-assign": 2, - "no-label-var": 2, - "no-ternary": 0, - "no-self-compare": 2, - "no-sync": 2, - "no-underscore-dangle": 0, - "no-loop-func": 2, - "no-labels": 2, - "no-unused-vars": ["error", { "vars": "local", "args": "after-used", - "varsIgnorePattern": "print_elapsed_time|check_duplicate_ids" - }], - "no-script-url": 2, "no-proto": 2, - "no-mixed-requires": [0, false], - "no-extra-parens": ["error", "functions"], - "no-shadow": 0, - "no-use-before-define": 2, "no-redeclare": 2, "no-regex-spaces": 2, - "brace-style": ["error", "1tbs", { "allowSingleLine": true }], - "block-scoped-var": 2, - "camelcase": 0, - "complexity": [0, 4], - "curly": 2, - "guard-for-in": 2, - "max-depth": [0, 4], - "max-len": ["error", 100, 2, { - "ignoreUrls": true, - "ignoreComments": false, - "ignoreRegExpLiterals": true, - "ignoreStrings": true, - "ignoreTemplateLiterals": true - }], - "max-params": [0, 3], - "max-statements": [0, 10], - "new-cap": ["error", { "newIsCap": true, "capIsNew": false }], - "new-parens": 2, - "one-var": ["error", "never"], - "quotes": [0, "single"], + "no-restricted-syntax": 0, + "no-return-assign": 2, + "no-script-url": 2, + "no-self-compare": 2, + "no-shadow": 0, + "no-sync": 2, + "no-ternary": 0, + "no-undef": "error", + "no-undef-init": 2, + "no-underscore-dangle": 0, + "no-unneeded-ternary": [ "error", { "defaultAssignment": false } ], + "no-unreachable": 2, + "no-unused-expressions": 2, + "no-unused-vars": [ "error", + { + "vars": "local", + "args": "after-used", + "varsIgnorePattern": "print_elapsed_time|check_duplicate_ids" + } + ], + "no-use-before-define": 2, + "no-useless-constructor": "error", + // The Zulip codebase complies partially with the "no-useless-escape" + // rule; only regex expressions haven't been updated yet. + // Updated regex expressions are currently being tested in casper + // files and will decide about a potential future enforcement of this rule. + "no-useless-escape": 0, + "no-whitespace-before-property": 0, + "no-with": 2, + "one-var": [ "error", "never" ], + "padded-blocks": 0, + "prefer-const": [ "error", + { + "destructuring": "any", + "ignoreReadBeforeAssign": true + } + ], + "quote-props": [ "error", "as-needed", + { + "keywords": false, + "unnecessary": true, + "numbers": false + } + ], + "quotes": [ 0, "single" ], "radix": 2, "semi": 2, - "keyword-spacing": ["error", { - "before": true, - "after": true, - "overrides": { - "return": { "after": true }, - "throw": { "after": true }, - "case": { "after": true } - } - }], "space-before-blocks": 2, + "space-before-function-paren": [ "error", + { + "anonymous": "always", + "named": "never", + "asyncArrow": "always" + } + ], + "space-in-parens": 0, + "space-infix-ops": 0, + "spaced-comment": 0, "strict": 0, + "template-curly-spacing": "error", "unnecessary-strict": 0, "use-isnan": 2, - "valid-typeof": ["error", { "requireStringLiterals": true }], + "valid-typeof": [ "error", { "requireStringLiterals": true } ], + "wrap-iife": [ "error", "outside", { "functionPrototypeMethods": false } ], "wrap-regex": 0, "yoda": 2 }