.eslintrc.json 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. {
  2. "extends": "eslint:recommended",
  3. "parserOptions": {
  4. "ecmaVersion": 2017
  5. },
  6. "env": {
  7. "es6": true,
  8. "node": true,
  9. "browser": true
  10. },
  11. "overrides": [
  12. { "files": ["*.mjs"], "parserOptions": { "sourceType": "module" } },
  13. {
  14. "files": ["*.jsx"],
  15. "parserOptions": {
  16. "sourceType": "module",
  17. "ecmaFeatures": { "jsx": true }
  18. }
  19. }
  20. ],
  21. "rules": {
  22. "no-await-in-loop": "warn",
  23. "no-compare-neg-zero": "error",
  24. "no-extra-parens": ["warn", "all", {
  25. "nestedBinaryExpressions": false
  26. }],
  27. "no-template-curly-in-string": "error",
  28. "no-unsafe-negation": "error",
  29. "valid-jsdoc": ["error", {
  30. "requireReturn": false,
  31. "requireReturnDescription": false,
  32. "prefer": {
  33. "return": "returns",
  34. "arg": "param"
  35. },
  36. "preferType": {
  37. "String": "string",
  38. "Number": "number",
  39. "Boolean": "boolean",
  40. "Symbol": "symbol",
  41. "object": "Object",
  42. "function": "Function",
  43. "array": "Array",
  44. "date": "Date",
  45. "error": "Error",
  46. "null": "void"
  47. }
  48. }],
  49. "accessor-pairs": "warn",
  50. "array-callback-return": "error",
  51. "complexity": "warn",
  52. "consistent-return": "off",
  53. "curly": ["error", "multi-or-nest", "consistent"],
  54. "dot-location": ["error", "property"],
  55. "dot-notation": "error",
  56. "eqeqeq": "error",
  57. "no-empty-function": "error",
  58. "no-floating-decimal": "error",
  59. "no-implied-eval": "error",
  60. "no-invalid-this": "error",
  61. "no-lone-blocks": "error",
  62. "no-multi-spaces": "error",
  63. "no-new-func": "error",
  64. "no-new-wrappers": "error",
  65. "no-new": "error",
  66. "no-octal-escape": "error",
  67. "no-return-assign": "error",
  68. "no-return-await": "error",
  69. "no-self-compare": "error",
  70. "no-sequences": "error",
  71. "no-throw-literal": "error",
  72. "no-unmodified-loop-condition": "error",
  73. "no-unused-expressions": "error",
  74. "no-useless-call": "error",
  75. "no-useless-concat": "error",
  76. "no-useless-escape": "error",
  77. "no-useless-return": "error",
  78. "no-void": "error",
  79. "no-warning-comments": "warn",
  80. "prefer-promise-reject-errors": "error",
  81. "require-await": "warn",
  82. "wrap-iife": "error",
  83. "yoda": "error",
  84. "no-label-var": "error",
  85. "no-shadow": "error",
  86. "no-undef-init": "error",
  87. "callback-return": "error",
  88. "handle-callback-err": "error",
  89. "no-mixed-requires": "error",
  90. "no-new-require": "error",
  91. "no-path-concat": "error",
  92. "array-bracket-spacing": "error",
  93. "block-spacing": "error",
  94. "brace-style": ["error", "1tbs", { "allowSingleLine": true }],
  95. "capitalized-comments": ["off", "always", { "ignoreConsecutiveComments": true }],
  96. "comma-dangle": ["error", "always-multiline"],
  97. "comma-spacing": "error",
  98. "comma-style": "error",
  99. "computed-property-spacing": "error",
  100. "consistent-this": ["error", "$this"],
  101. "eol-last": "error",
  102. "func-names": "error",
  103. "func-name-matching": "error",
  104. "func-style": ["error", "declaration", { "allowArrowFunctions": true }],
  105. "indent": ["error", 2, { "SwitchCase": 1 }],
  106. "key-spacing": "error",
  107. "keyword-spacing": "error",
  108. "max-depth": "error",
  109. "max-len": ["error", 120, 2],
  110. "max-nested-callbacks": ["error", { "max": 4 }],
  111. "max-statements-per-line": ["error", { "max": 2 }],
  112. "new-cap": "off",
  113. "newline-per-chained-call": ["error", { "ignoreChainWithDepth": 3 }],
  114. "no-array-constructor": "error",
  115. "no-inline-comments": "off",
  116. "no-lonely-if": "error",
  117. "no-mixed-operators": "error",
  118. "no-multiple-empty-lines": ["error", { "max": 2, "maxEOF": 1, "maxBOF": 0 }],
  119. "no-new-object": "error",
  120. "no-spaced-func": "error",
  121. "no-trailing-spaces": "error",
  122. "no-unneeded-ternary": "error",
  123. "no-whitespace-before-property": "error",
  124. "nonblock-statement-body-position": ["error", "below"],
  125. "object-curly-spacing": ["error", "always"],
  126. "operator-assignment": "error",
  127. "operator-linebreak": ["error", "after"],
  128. "padded-blocks": ["error", "never"],
  129. "quote-props": ["error", "as-needed"],
  130. "quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": true }],
  131. "semi-spacing": "error",
  132. "semi": "error",
  133. "space-before-blocks": "error",
  134. "space-before-function-paren": ["error", "never"],
  135. "space-in-parens": "error",
  136. "space-infix-ops": "error",
  137. "space-unary-ops": "error",
  138. "spaced-comment": "error",
  139. "template-tag-spacing": "error",
  140. "unicode-bom": "error",
  141. "arrow-body-style": "error",
  142. "arrow-parens": ["error", "always"],
  143. "arrow-spacing": "error",
  144. "no-duplicate-imports": "error",
  145. "no-useless-computed-key": "error",
  146. "no-useless-constructor": "error",
  147. "prefer-arrow-callback": "error",
  148. "prefer-numeric-literals": "error",
  149. "prefer-rest-params": "error",
  150. "prefer-spread": "error",
  151. "prefer-template": "error",
  152. "rest-spread-spacing": "error",
  153. "template-curly-spacing": "error",
  154. "yield-star-spacing": "error"
  155. }
  156. }