.eslintrc 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. {
  2. "parser": "babel-eslint",
  3. "extends": [
  4. "airbnb"
  5. ],
  6. "env": {
  7. "browser": true,
  8. "jest": true
  9. },
  10. "globals": {
  11. "__DEV__": true,
  12. "__PROD__": true,
  13. "__DEBUG__": true,
  14. "__COVERAGE__": true,
  15. "__BASENAME__": true
  16. },
  17. "settings": {
  18. "import/resolver": {
  19. "webpack": {
  20. "config": "webpack.config.js"
  21. }
  22. }
  23. },
  24. "rules": {
  25. "react/sort-comp": [
  26. 1,
  27. {
  28. "order": [
  29. "static-methods",
  30. "displayName",
  31. "propTypes",
  32. "contextTypes",
  33. "childContextTypes",
  34. "mixins",
  35. "statics",
  36. "defaultProps",
  37. "state",
  38. "type-annotations",
  39. "instance-variables",
  40. "getters",
  41. "setters",
  42. "constructor",
  43. "getDefaultProps",
  44. "getInitialState",
  45. "getChildContext",
  46. "getDerivedStateFromProps",
  47. "lifecycle",
  48. "everything-else",
  49. "^handle.+$",
  50. "render"
  51. ],
  52. "groups": {
  53. "lifecycle": [
  54. "componentWillMount",
  55. "componentDidMount",
  56. "componentWillReceiveProps",
  57. "shouldComponentUpdate",
  58. "componentWillUpdate",
  59. "getSnapshotBeforeUpdate",
  60. "componentDidUpdate",
  61. "componentDidCatch",
  62. "componentWillUnmount"
  63. ]
  64. }
  65. }
  66. ],
  67. "semi": [
  68. 2,
  69. "never"
  70. ],
  71. "comma-dangle": [
  72. 2,
  73. "always-multiline"
  74. ],
  75. "newline-per-chained-call": 0,
  76. "class-methods-use-this": 0,
  77. "max-len": 0,
  78. "prefer-const": 0,
  79. "arrow-parens": 0,
  80. "react/prefer-stateless-function": 0,
  81. "react/no-array-index-key": 0,
  82. "react/no-danger": 0,
  83. "no-param-reassign": 0,
  84. "no-shadow": 0,
  85. "arrow-body-style": 0,
  86. "global-require": 0,
  87. "no-unused-expressions": 0,
  88. "no-confusing-arrow": 0,
  89. "no-console": "off",
  90. "no-nested-ternary": 0,
  91. "import/no-dynamic-require": 0,
  92. "import/no-unresolved": 0,
  93. "import/extensions": 0,
  94. "import/no-extraneous-dependencies": 0,
  95. "import/prefer-default-export": 0,
  96. "react/require-default-props": 0,
  97. "react/forbid-prop-types": 0,
  98. "jsx-a11y/href-no-hash": 0,
  99. "flowtype/boolean-style": [
  100. "error",
  101. "boolean"
  102. ],
  103. "flowtype/define-flow-type": "warn",
  104. "flowtype/delimiter-dangle": [
  105. "error",
  106. "only-multiline"
  107. ],
  108. "flowtype/generic-spacing": [
  109. "error",
  110. "never"
  111. ],
  112. "flowtype/no-primitive-constructor-types": "error",
  113. "flowtype/object-type-delimiter": [
  114. "error",
  115. "comma"
  116. ],
  117. "flowtype/require-parameter-type": "off",
  118. "flowtype/require-return-type": "off",
  119. "flowtype/require-valid-file-annotation": "off",
  120. "flowtype/semi": [
  121. "error",
  122. "never"
  123. ],
  124. "flowtype/space-after-type-colon": [
  125. "error",
  126. "always"
  127. ],
  128. "flowtype/space-before-generic-bracket": [
  129. "error",
  130. "never"
  131. ],
  132. "flowtype/space-before-type-colon": [
  133. "error",
  134. "never"
  135. ],
  136. "flowtype/union-intersection-spacing": [
  137. "error",
  138. "always"
  139. ],
  140. "flowtype/use-flow-type": "error",
  141. "flowtype/valid-syntax": "error"
  142. },
  143. "plugins": [
  144. "flowtype"
  145. ]
  146. }