eslint.config.mjs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { defineConfig, globalIgnores } from "eslint/config";
  2. import react from "eslint-plugin-react";
  3. import typescriptEslint from "@typescript-eslint/eslint-plugin";
  4. import prettier from "eslint-plugin-prettier";
  5. import coriolisWeb from "eslint-plugin-coriolis-web";
  6. import globals from "globals";
  7. import tsParser from "@typescript-eslint/parser";
  8. import path from "node:path";
  9. import { fileURLToPath } from "node:url";
  10. import js from "@eslint/js";
  11. import { FlatCompat } from "@eslint/eslintrc";
  12. const __filename = fileURLToPath(import.meta.url);
  13. const __dirname = path.dirname(__filename);
  14. const compat = new FlatCompat({
  15. baseDirectory: __dirname,
  16. recommendedConfig: js.configs.recommended,
  17. allConfig: js.configs.all,
  18. });
  19. export default defineConfig([
  20. globalIgnores(["**/*.svg", "**/*.png", "**/*.jpg", "**/*.jpeg", "**/*.woff"]),
  21. {
  22. extends: compat.extends(
  23. "eslint:recommended",
  24. "plugin:react/recommended",
  25. "plugin:@typescript-eslint/recommended",
  26. "prettier",
  27. ),
  28. plugins: {
  29. react,
  30. "@typescript-eslint": typescriptEslint,
  31. prettier,
  32. "coriolis-web": coriolisWeb,
  33. },
  34. languageOptions: {
  35. globals: {
  36. ...globals.browser,
  37. ...globals.jest,
  38. ...globals.node,
  39. },
  40. parser: tsParser,
  41. ecmaVersion: "latest",
  42. sourceType: "module",
  43. },
  44. settings: {
  45. "import/resolver": {
  46. typescript: {},
  47. },
  48. react: {
  49. version: "detect",
  50. },
  51. },
  52. rules: {
  53. "coriolis-web/import-no-duplicate-name": "error",
  54. "@typescript-eslint/ban-ts-comment": "off",
  55. "@typescript-eslint/no-explicit-any": "off",
  56. "@typescript-eslint/no-non-null-assertion": "off",
  57. "@typescript-eslint/no-empty-function": "off",
  58. "@typescript-eslint/no-non-null-asserted-optional-chain": "off",
  59. "@typescript-eslint/no-unused-vars": "off",
  60. "@typescript-eslint/no-unused-expressions": "off",
  61. "@typescript-eslint/no-require-imports": "off",
  62. },
  63. },
  64. ]);