.eslintrc.cjs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. module.exports = {
  2. env: {
  3. browser: true,
  4. es6: true,
  5. node: true,
  6. },
  7. extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
  8. parser: '@typescript-eslint/parser',
  9. parserOptions: {
  10. project: 'tsconfig.json',
  11. sourceType: 'module',
  12. },
  13. plugins: ['@typescript-eslint'],
  14. rules: {
  15. '@typescript-eslint/adjacent-overload-signatures': 'error',
  16. '@typescript-eslint/no-empty-function': 'error',
  17. '@typescript-eslint/no-empty-interface': 'warn',
  18. '@typescript-eslint/no-floating-promises': 'error',
  19. '@typescript-eslint/await-thenable': 'error',
  20. '@typescript-eslint/no-namespace': 'error',
  21. '@typescript-eslint/no-unnecessary-type-assertion': 'error',
  22. '@typescript-eslint/prefer-for-of': 'warn',
  23. '@typescript-eslint/triple-slash-reference': 'error',
  24. '@typescript-eslint/unified-signatures': 'warn',
  25. 'constructor-super': 'error',
  26. eqeqeq: ['error', 'always'],
  27. 'no-cond-assign': 'error',
  28. 'no-duplicate-case': 'error',
  29. 'no-duplicate-imports': 'error',
  30. 'no-empty': [
  31. 'error',
  32. {
  33. allowEmptyCatch: true,
  34. },
  35. ],
  36. 'no-invalid-this': 'error',
  37. 'no-new-wrappers': 'error',
  38. 'no-param-reassign': 'error',
  39. 'no-redeclare': 'error',
  40. 'no-sequences': 'error',
  41. 'no-shadow': [
  42. 'error',
  43. {
  44. hoist: 'all',
  45. },
  46. ],
  47. 'no-throw-literal': 'error',
  48. 'no-unsafe-finally': 'error',
  49. 'no-unused-labels': 'error',
  50. 'no-var': 'warn',
  51. 'no-void': 'off',
  52. 'prefer-const': 'warn',
  53. },
  54. };