eslint.config.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import globals from 'globals';
  2. import eslintJs from '@eslint/js';
  3. import eslintTypescript from 'typescript-eslint';
  4. import eslintJsdocPlugin from 'eslint-plugin-jsdoc';
  5. import eslintMochaPlugin from 'eslint-plugin-mocha';
  6. import eslintPrettierConfig from 'eslint-config-prettier';
  7. import eslintChaiExpectPlugin from 'eslint-plugin-chai-expect';
  8. export default [
  9. {
  10. files: ['src/**/*.js'],
  11. languageOptions: {
  12. globals: {
  13. ...globals.node,
  14. ...globals.es2021,
  15. ...globals.mocha,
  16. },
  17. },
  18. plugins: {
  19. 'jsdoc': eslintJsdocPlugin,
  20. 'mocha': eslintMochaPlugin,
  21. 'chai-expect': eslintChaiExpectPlugin,
  22. },
  23. rules: {
  24. ...eslintJs.configs.recommended.rules,
  25. ...eslintPrettierConfig.rules,
  26. ...eslintMochaPlugin.configs.recommended.rules,
  27. ...eslintChaiExpectPlugin.configs['recommended-flat'].rules,
  28. ...eslintJsdocPlugin.configs['flat/recommended-error'].rules,
  29. 'no-unused-vars': ['error', {'caughtErrors': 'none'}],
  30. 'jsdoc/reject-any-type': 0,
  31. 'jsdoc/reject-function-type': 0,
  32. 'jsdoc/require-param-description': 0,
  33. 'jsdoc/require-returns-description': 0,
  34. 'jsdoc/require-property-description': 0,
  35. 'jsdoc/tag-lines': ['error', 'any', {startLines: 1}],
  36. },
  37. },
  38. {
  39. files: ['src/**/*.ts'],
  40. ignores: ['src/**/*.d.ts'],
  41. languageOptions: {
  42. globals: {
  43. ...globals.node,
  44. ...globals.es2021,
  45. ...globals.mocha,
  46. },
  47. parser: eslintTypescript.parser,
  48. parserOptions: {
  49. projectService: true,
  50. tsconfigRootDir: import.meta.dirname,
  51. },
  52. },
  53. plugins: {
  54. '@typescript-eslint': eslintTypescript.plugin,
  55. 'mocha': eslintMochaPlugin,
  56. 'chai-expect': eslintChaiExpectPlugin,
  57. },
  58. rules: {
  59. ...eslintJs.configs.recommended.rules,
  60. ...eslintPrettierConfig.rules,
  61. ...eslintTypescript.configs.recommended.rules,
  62. '@typescript-eslint/no-namespace': 0,
  63. '@typescript-eslint/no-var-requires': 0,
  64. '@typescript-eslint/no-unnecessary-type-constraint': 0,
  65. },
  66. },
  67. ];