{ "rules": { // Possible Problems // @see https://eslint.org/docs/latest/rules/#possible-problems "array-callback-return": ["error"], "constructor-super": ["error"], "for-direction": ["error"], "getter-return": ["error"], "no-async-promise-executor": ["error"], "no-await-in-loop": ["error"], "no-class-assign": ["error"], "no-compare-neg-zero": ["error"], "no-cond-assign": ["error"], "no-const-assign": ["error"], "no-constant-binary-expression": ["error"], "no-constant-condition": ["error"], "no-constructor-return": ["error"], "no-control-regex": ["error"], "no-debugger": ["error"], "no-dupe-args": ["error"], "no-dupe-class-members": ["error"], "no-dupe-else-if": ["error"], "no-dupe-keys": ["error"], "no-duplicate-case": ["error"], "no-duplicate-imports": ["error"], "no-empty-character-class": ["error"], "no-empty-pattern": ["error"], "no-ex-assign": ["error"], "no-fallthrough": ["error"], "no-func-assign": ["error"], "no-import-assign": ["error"], "no-inner-declarations": ["error"], "no-invalid-regexp": ["error"], "no-irregular-whitespace": ["error"], "no-loss-of-precision": ["error"], "no-misleading-character-class": ["error"], "no-new-native-nonconstructor": ["error"], "no-new-symbol": ["error"], "no-obj-calls": ["error"], "no-promise-executor-return": ["error"], "no-prototype-builtins": ["error"], "no-self-assign": ["error"], "no-self-compare": ["error"], "no-setter-return": ["error"], "no-sparse-arrays": ["error"], "no-template-curly-in-string": ["error"], "no-this-before-super": ["error"], "no-undef": ["off"], "no-unexpected-multiline": ["error"], "no-unmodified-loop-condition": ["error"], "no-unreachable": ["error"], "no-unreachable-loop": ["error"], "no-unsafe-finally": ["error"], "no-unsafe-negation": ["error"], "no-unsafe-optional-chaining": ["error"], "no-unused-private-class-members": ["error"], "no-unused-vars": ["error"], "no-use-before-define": ["off"], "no-useless-backreference": ["error"], "require-atomic-updates": ["error"], "use-isnan": ["error"], "valid-typeof": ["error"], // Suggestions // https://eslint.org/docs/latest/rules/#suggestions "accessor-pairs": ["error"], "arrow-body-style": ["error"], "block-scoped-var": ["error"], "camelcase": ["error"], "capitalized-comments": ["error"], "class-methods-use-this": ["error"], "complexity": ["error"], "consistent-return": ["error"], "consistent-this": ["error"], "curly": ["error"], "default-case": ["error"], "default-case-last": ["error"], "default-param-last": ["error"], "dot-notation": ["error"], "eqeqeq": ["error"], "func-name-matching": ["error"], "func-names": ["error"], "func-style": ["off"], "grouped-accessor-pairs": ["error"], "guard-for-in": ["error"], "id-denylist": ["error"], "id-length": ["off"], "id-match": ["error"], "init-declarations": ["off"], "logical-assignment-operators": ["off"], // @todo Update to "error" when syntax suported by ddcwww Browserify "max-classes-per-file": ["error"], "max-depth": ["error"], "max-lines": ["error", { "max": 600, "skipComments": true }], "max-lines-per-function": ["error", { "max": 50, "skipComments": true }], "max-nested-callbacks": ["error"], "max-params": ["error", 5], "max-statements": ["error", 40], "multiline-comment-style": ["error"], "new-cap": ["error"], "no-alert": ["error"], "no-array-constructor": ["error"], "no-bitwise": ["error"], "no-caller": ["error"], "no-case-declarations": ["error"], "no-confusing-arrow": ["error"], "no-console": ["error"], "no-continue": ["error"], "no-delete-var": ["error"], "no-div-regex": ["error"], "no-else-return": ["error"], "no-empty": ["error"], "no-empty-function": ["error"], "no-empty-static-block": ["error"], "no-eq-null": ["error"], "no-eval": ["error"], "no-extend-native": ["error"], "no-extra-bind": ["error"], "no-extra-boolean-cast": ["error"], "no-extra-label": ["error"], "no-extra-semi": ["error"], "no-floating-decimal": ["error"], "no-global-assign": ["error"], "no-implicit-coercion": ["error"], "no-implicit-globals": ["off"], "no-implied-eval": ["error"], "no-inline-comments": ["off"], "no-invalid-this": ["error"], "no-iterator": ["error"], "no-label-var": ["error"], "no-labels": ["error"], "no-lone-blocks": ["error"], "no-lonely-if": ["error"], "no-loop-func": ["error"], "no-magic-numbers": ["off"], "no-mixed-operators": ["error"], "no-multi-assign": ["error"], "no-multi-str": ["error"], "no-negated-condition": ["off"], "no-nested-ternary": ["error"], "no-new": ["error"], "no-new-func": ["error"], "no-new-object": ["error"], "no-new-wrappers": ["error"], "no-nonoctal-decimal-escape": ["error"], "no-octal": ["error"], "no-octal-escape": ["error"], "no-param-reassign": ["off"], "no-plusplus": ["off"], "no-proto": ["error"], "no-redeclare": ["error"], "no-regex-spaces": ["error"], "no-restricted-exports": ["error"], "no-restricted-globals": ["error"], "no-restricted-imports": ["error"], "no-restricted-properties": ["error"], "no-restricted-syntax": ["error"], "no-return-assign": ["error"], "no-return-await": ["error"], "no-script-url": ["error"], "no-sequences": ["error"], "no-shadow": ["error"], "no-shadow-restricted-names": ["error"], "no-ternary": ["off"], "no-throw-literal": ["error"], "no-undef-init": ["error"], "no-undefined": ["error"], "no-underscore-dangle": ["off"], "no-unneeded-ternary": ["error"], "no-unused-expressions": ["error"], "no-unused-labels": ["error"], "no-useless-call": ["error"], "no-useless-catch": ["error"], "no-useless-computed-key": ["error"], "no-useless-concat": ["error"], "no-useless-constructor": ["error"], "no-useless-escape": ["error"], "no-useless-rename": ["error"], "no-useless-return": ["error"], "no-var": ["error"], "no-void": ["error"], "no-warning-comments": ["error"], "no-with": ["error"], "object-shorthand": ["error"], "one-var": ["off"], "one-var-declaration-per-line": ["error"], "operator-assignment": ["error"], "prefer-arrow-callback": ["error"], "prefer-const": ["error"], "prefer-destructuring": ["error"], "prefer-exponentiation-operator": ["error"], "prefer-named-capture-group": ["off"], "prefer-numeric-literals": ["error"], "prefer-object-has-own": ["error"], "prefer-object-spread": ["error"], "prefer-promise-reject-errors": ["error"], "prefer-regex-literals": ["error"], "prefer-rest-params": ["error"], "prefer-spread": ["error"], "prefer-template": ["off"], "quote-props": ["off"], "radix": ["off"], "require-await": ["error"], "require-unicode-regexp": ["off"], "require-yield": ["error"], "sort-imports": ["error"], "sort-keys": ["off"], "sort-vars": ["error"], "spaced-comment": ["error"], "strict": ["off"], "symbol-description": ["error"], "vars-on-top": ["error"], "yoda": ["error"], // Layout & Formatting // https://eslint.org/docs/latest/rules/#layout--formatting "array-bracket-newline": ["error", "consistent"], "array-bracket-spacing": ["error", "never"], "array-element-newline": ["error", "consistent"], "arrow-parens": ["error", "always"], "arrow-spacing": ["error", { "before": true, "after": true }], "block-spacing": ["error", "always"], "brace-style": ["off"], "comma-dangle": ["error", "always-multiline"], "comma-spacing": ["error", { "before": false, "after": true }], "comma-style": ["error", "last"], "computed-property-spacing": ["error", "never"], "dot-location": ["error", "property"], "eol-last": ["error", "always"], "func-call-spacing": ["error", "never"], "function-call-argument-newline": ["error", "consistent"], "function-paren-newline": ["error", "multiline"], "generator-star-spacing": ["error", { "before": true, "after": false }], "implicit-arrow-linebreak": ["error", "beside"], "indent": ["error", "tab", { "SwitchCase": 1 }], "jsx-quotes": ["off"], "key-spacing": ["error", { "beforeColon": false, "afterColon": true, "mode": "strict" }], "keyword-spacing": ["error", { "before": true, "after": true }], "line-comment-position": ["off"], "linebreak-style": ["off"], "lines-around-comment": ["error", { "beforeBlockComment": true, "allowClassStart" : false, "allowClassEnd": false }], "lines-between-class-members": ["error", "always"], "max-len": ["error", { "code": 150, "ignoreTrailingComments" : true, "ignoreUrls": true }], "max-statements-per-line": ["error", { "max": 1 }], "multiline-ternary": ["error", "always-multiline"], "new-parens": ["error", "always"], "newline-per-chained-call": ["error", { "ignoreChainWithDepth": 3 }], "no-extra-parens": ["off"], "no-mixed-spaces-and-tabs": ["error"], "no-multi-spaces": ["error", { "ignoreEOLComments": true }], "no-multiple-empty-lines": ["error", { "max": 1 }], "no-tabs": ["off"], "no-trailing-spaces": ["error"], "no-whitespace-before-property": ["error"], "nonblock-statement-body-position": ["error", "beside"], "object-curly-newline": ["error", { "consistent": true }], "object-property-newline": ["error", { "allowAllPropertiesOnSameLine": true }], "operator-linebreak": ["error", "before"], "padded-blocks": ["error", "never"], "padding-line-between-statements": ["off"], "quotes": ["off"], "rest-spread-spacing": ["error", "never"], "semi": ["error", "always"], "semi-spacing": ["error", { "before": false, "after": true }], "semi-style": ["error", "last"], "space-before-blocks": ["error", "always"], "space-before-function-paren": ["off"], "space-in-parens": ["error", "never"], "space-infix-ops": ["error", { "int32Hint": false }], "space-unary-ops": ["error"], "switch-colon-spacing": ["error", { "after": true, "before": false }], "template-curly-spacing": ["error", "never"], "template-tag-spacing": ["error", "never"], "unicode-bom": ["error", "never"], "wrap-iife": ["error", "outside"], "wrap-regex": ["error"], "yield-star-spacing": ["error", { "before": true, "after": false }] }, "parserOptions": { "ecmaVersion": "latest" } }