.eslintrc.json 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. {
  2. "extends": "standard-with-typescript",
  3. "rules": {
  4. "eol-last": [
  5. "error",
  6. "always"
  7. ],
  8. "indent": "off",
  9. "no-lone-blocks": "off",
  10. "no-mixed-operators": "off",
  11. "max-len": [
  12. "error",
  13. {
  14. "code": 140
  15. }
  16. ],
  17. "array-bracket-spacing": [
  18. "error",
  19. "always"
  20. ],
  21. "quote-props": [
  22. "error",
  23. "consistent-as-needed"
  24. ],
  25. "padded-blocks": "off",
  26. "prefer-regex-literals": "off",
  27. "no-async-promise-executor": "off",
  28. "dot-notation": "off",
  29. "promise/param-names": "off",
  30. "import/first": "off",
  31. "operator-linebreak": [
  32. "error",
  33. "after",
  34. {
  35. "overrides": {
  36. "?": "before",
  37. ":": "before"
  38. }
  39. }
  40. ],
  41. "@typescript-eslint/indent": [
  42. "error",
  43. 2,
  44. {
  45. "SwitchCase": 1,
  46. "MemberExpression": "off"
  47. }
  48. ],
  49. "@typescript-eslint/consistent-type-assertions": [
  50. "error",
  51. {
  52. "assertionStyle": "as"
  53. }
  54. ],
  55. "@typescript-eslint/array-type": [
  56. "error",
  57. {
  58. "default": "array"
  59. }
  60. ],
  61. "@typescript-eslint/restrict-template-expressions": [
  62. "off",
  63. {
  64. "allowNumber": "true"
  65. }
  66. ],
  67. "@typescript-eslint/no-this-alias": [
  68. "error",
  69. {
  70. "allowDestructuring": true, // Allow `const { props, state } = this`; false by default
  71. "allowedNames": ["self"] // Allow `const self = this`; `[]` by default
  72. }
  73. ],
  74. "@typescript-eslint/return-await": "off",
  75. "@typescript-eslint/dot-notation": "off",
  76. "@typescript-eslint/method-signature-style": "off",
  77. "@typescript-eslint/no-base-to-string": "off",
  78. "@typescript-eslint/quotes": "off",
  79. "@typescript-eslint/no-var-requires": "off",
  80. "@typescript-eslint/explicit-function-return-type": "off",
  81. "@typescript-eslint/promise-function-async": "off",
  82. "@typescript-eslint/no-dynamic-delete": "off",
  83. "@typescript-eslint/no-unnecessary-boolean-literal-compare": "off",
  84. "@typescript-eslint/strict-boolean-expressions": "off",
  85. "@typescript-eslint/consistent-type-definitions": "off",
  86. "@typescript-eslint/no-misused-promises": "off",
  87. "@typescript-eslint/no-namespace": "off",
  88. "@typescript-eslint/no-empty-interface": "off",
  89. "@typescript-eslint/no-extraneous-class": "off",
  90. "@typescript-eslint/no-use-before-define": "off",
  91. "require-await": "off",
  92. "@typescript-eslint/require-await": "error",
  93. // bugged but useful
  94. "@typescript-eslint/restrict-plus-operands": "off"
  95. },
  96. "ignorePatterns": [
  97. "node_modules/"
  98. ],
  99. "parserOptions": {
  100. "EXPERIMENTAL_useSourceOfProjectReferenceRedirect": true,
  101. "project": [
  102. "./tsconfig.json",
  103. "./shared/tsconfig.json",
  104. "./scripts/tsconfig.json",
  105. "./server/tsconfig.json",
  106. "./server/tools/tsconfig.json"
  107. ]
  108. }
  109. }