eslint.config.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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.flat.recommended.rules,
  27. ...eslintChaiExpectPlugin.configs['recommended-flat'].rules,
  28. ...eslintJsdocPlugin.configs['flat/recommended-error'].rules,
  29. 'no-unused-vars': ['error', {'caughtErrors': 'none'}],
  30. 'jsdoc/require-param-description': 0,
  31. 'jsdoc/require-returns-description': 0,
  32. 'jsdoc/require-property-description': 0,
  33. 'jsdoc/tag-lines': ['error', 'any', {startLines: 1}],
  34. },
  35. },
  36. {
  37. files: ['src/**/*.ts'],
  38. ignores: ['src/**/*.d.ts'],
  39. languageOptions: {
  40. globals: {
  41. ...globals.node,
  42. ...globals.es2021,
  43. ...globals.mocha,
  44. },
  45. parser: eslintTypescript.parser,
  46. parserOptions: {
  47. projectService: true,
  48. tsconfigRootDir: import.meta.dirname,
  49. },
  50. },
  51. plugins: {
  52. '@typescript-eslint': eslintTypescript.plugin,
  53. 'mocha': eslintMochaPlugin,
  54. 'chai-expect': eslintChaiExpectPlugin,
  55. },
  56. rules: {
  57. ...eslintJs.configs.recommended.rules,
  58. ...eslintPrettierConfig.rules,
  59. ...eslintTypescript.configs.recommended.rules,
  60. '@typescript-eslint/no-namespace': 0,
  61. '@typescript-eslint/no-var-requires': 0,
  62. '@typescript-eslint/no-unnecessary-type-constraint': 0,
  63. },
  64. },
  65. ];