.eslintrc 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. {
  2. "parser": "babel-eslint",
  3. "ecmaFeatures": {
  4. "jsx": true,
  5. "modules": true
  6. },
  7. "env": {
  8. "browser": true,
  9. "es6": true,
  10. "mocha": true, // we use Chai, but close enough,
  11. "jquery": true // hard-loaded into vendor.js
  12. },
  13. "globals": {
  14. "require": false,
  15. "expect": false,
  16. "sinon": false,
  17. "Raven": true
  18. },
  19. "plugins": [
  20. "react",
  21. "getsentry"
  22. ],
  23. "rules": {
  24. /**
  25. * Strict mode
  26. */
  27. "strict": [2, "global"], // http://eslint.org/docs/rules/strict
  28. /**
  29. * ES6
  30. */
  31. "no-var": 2, // http://eslint.org/docs/rules/no-var
  32. "prefer-const": 0, // http://eslint.org/docs/rules/prefer-const
  33. /**
  34. * Variables
  35. */
  36. "no-shadow": 2, // http://eslint.org/docs/rules/no-shadow
  37. "no-shadow-restricted-names": 2, // http://eslint.org/docs/rules/no-shadow-restricted-names
  38. "no-undef": 2, // http://eslint.org/docs/rules/no-undef
  39. "no-unused-vars": [2, { // http://eslint.org/docs/rules/no-unused-vars
  40. "vars": "local",
  41. "args": "none"
  42. }],
  43. "no-use-before-define": 2, // http://eslint.org/docs/rules/no-use-before-define
  44. /**
  45. * Possible errors
  46. */
  47. "comma-dangle": [0, "always-multiline"], // http://eslint.org/docs/rules/comma-dangle
  48. "no-cond-assign": [2, "always"], // http://eslint.org/docs/rules/no-cond-assign
  49. "no-console": 1, // http://eslint.org/docs/rules/no-console
  50. "no-debugger": 1, // http://eslint.org/docs/rules/no-debugger
  51. "no-alert": 1, // http://eslint.org/docs/rules/no-alert
  52. "no-constant-condition": 1, // http://eslint.org/docs/rules/no-constant-condition
  53. "no-dupe-keys": 2, // http://eslint.org/docs/rules/no-dupe-keys
  54. "no-duplicate-case": 2, // http://eslint.org/docs/rules/no-duplicate-case
  55. "no-empty": 2, // http://eslint.org/docs/rules/no-empty
  56. "no-ex-assign": 2, // http://eslint.org/docs/rules/no-ex-assign
  57. "no-extra-boolean-cast": 0, // http://eslint.org/docs/rules/no-extra-boolean-cast
  58. "no-extra-semi": 2, // http://eslint.org/docs/rules/no-extra-semi
  59. "no-func-assign": 2, // http://eslint.org/docs/rules/no-func-assign
  60. "no-inner-declarations": 2, // http://eslint.org/docs/rules/no-inner-declarations
  61. "no-invalid-regexp": 2, // http://eslint.org/docs/rules/no-invalid-regexp
  62. "no-irregular-whitespace": 2, // http://eslint.org/docs/rules/no-irregular-whitespace
  63. "no-obj-calls": 2, // http://eslint.org/docs/rules/no-obj-calls
  64. "no-sparse-arrays": 2, // http://eslint.org/docs/rules/no-sparse-arrays
  65. "no-unreachable": 2, // http://eslint.org/docs/rules/no-unreachable
  66. "semi": [2, "always"], // http://eslint.org/docs/rules/semi.html
  67. "use-isnan": 2, // http://eslint.org/docs/rules/use-isnan
  68. "block-scoped-var": 2, // http://eslint.org/docs/rules/block-scoped-var
  69. /**
  70. * Best practices
  71. */
  72. "consistent-return": 2, // http://eslint.org/docs/rules/consistent-return
  73. "curly": 0, // http://eslint.org/docs/rules/curly [REVISIT ME]
  74. "default-case": 2, // http://eslint.org/docs/rules/default-case
  75. "dot-notation": [2, { // http://eslint.org/docs/rules/dot-notation
  76. "allowKeywords": true
  77. }],
  78. "eqeqeq": 0, // http://eslint.org/docs/rules/eqeqeq [REVISIT ME]
  79. "guard-for-in": 0, // http://eslint.org/docs/rules/guard-for-in [REVISIT ME]
  80. "jsx-quotes": [2, "prefer-double"], // http://eslint.org/docs/rules/jsx-quotes
  81. "no-caller": 2, // http://eslint.org/docs/rules/no-caller
  82. "no-else-return": 0, // http://eslint.org/docs/rules/no-else-return [REVISIT ME]
  83. "no-eq-null": 2, // http://eslint.org/docs/rules/no-eq-null
  84. "no-eval": 2, // http://eslint.org/docs/rules/no-eval
  85. "no-extend-native": 2, // http://eslint.org/docs/rules/no-extend-native
  86. "no-extra-bind": 2, // http://eslint.org/docs/rules/no-extra-bind
  87. "no-fallthrough": 2, // http://eslint.org/docs/rules/no-fallthrough
  88. "no-floating-decimal": 2, // http://eslint.org/docs/rules/no-floating-decimal
  89. "no-implied-eval": 2, // http://eslint.org/docs/rules/no-implied-eval
  90. "no-lone-blocks": 2, // http://eslint.org/docs/rules/no-lone-blocks
  91. "no-loop-func": 2, // http://eslint.org/docs/rules/no-loop-func
  92. "no-multi-str": 2, // http://eslint.org/docs/rules/no-multi-str
  93. "no-native-reassign": 2, // http://eslint.org/docs/rules/no-native-reassign
  94. "no-new": 2, // http://eslint.org/docs/rules/no-new
  95. "no-new-func": 2, // http://eslint.org/docs/rules/no-new-func
  96. "no-new-wrappers": 2, // http://eslint.org/docs/rules/no-new-wrappers
  97. "no-octal": 2, // http://eslint.org/docs/rules/no-octal
  98. "no-octal-escape": 2, // http://eslint.org/docs/rules/no-octal-escape
  99. "no-param-reassign": 0, // http://eslint.org/docs/rules/no-param-reassign [REVISIT ME]
  100. "no-proto": 2, // http://eslint.org/docs/rules/no-proto
  101. "no-redeclare": 2, // http://eslint.org/docs/rules/no-redeclare
  102. "no-return-assign": 2, // http://eslint.org/docs/rules/no-return-assign
  103. "no-script-url": 2, // http://eslint.org/docs/rules/no-script-url
  104. "no-self-compare": 2, // http://eslint.org/docs/rules/no-self-compare
  105. "no-sequences": 2, // http://eslint.org/docs/rules/no-sequences
  106. "no-throw-literal": 2, // http://eslint.org/docs/rules/no-throw-literal
  107. "no-with": 2, // http://eslint.org/docs/rules/no-with
  108. "quotes": [2, "single"], // http://eslint.org/docs/rules/quotes.html
  109. "radix": 2, // http://eslint.org/docs/rules/radix
  110. "computed-property-spacing": [2, "never"], // http://eslint.org/docs/rules/space-in-brackets.html
  111. "array-bracket-spacing": [2, "never"], // http://eslint.org/docs/rules/space-in-brackets.html
  112. "object-curly-spacing": [2, "never"], // http://eslint.org/docs/rules/space-in-brackets.html
  113. "space-infix-ops": 2, // http://eslint.org/docs/rules/space-infix-ops.html
  114. "vars-on-top": 0, // http://eslint.org/docs/rules/vars-on-top
  115. "wrap-iife": [2, "any"], // http://eslint.org/docs/rules/wrap-iife
  116. "yoda": 2, // http://eslint.org/docs/rules/yoda
  117. /**
  118. * React
  119. */
  120. "react/display-name": 0, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/display-name.md
  121. "react/no-multi-comp": [1, {"ignoreStateless": true}], // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-multi-comp.md
  122. "react/jsx-key": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-key.md
  123. "react/jsx-no-undef": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-undef.md
  124. "react/jsx-no-duplicate-props": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-duplicate-props.md
  125. "react/jsx-uses-react": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-uses-react.md
  126. "react/jsx-uses-vars": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-uses-vars.md
  127. "react/no-did-mount-set-state": [2, "allow-in-func"], // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-did-mount-set-state.md
  128. "react/no-did-update-set-state": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-did-update-set-state.md"
  129. "react/no-unknown-property": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-unknown-property.md
  130. "react/prop-types": [2, {
  131. "ignore": ["className", "children", "location", "params"]
  132. }],
  133. "react/react-in-jsx-scope": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/react-in-jsx-scope.md
  134. "react/self-closing-comp": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/self-closing-comp.md
  135. "react/sort-comp": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/sort-comp.md
  136. "react/wrap-multilines": 2, // https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/wrap-multilines.md
  137. /**
  138. * Custom
  139. */
  140. "getsentry/jsx-needs-il8n": 1, // highlights literals in JSX components w/o translation tags
  141. }
  142. }