eslint.config.mjs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { defineConfig, globalIgnores } from "eslint/config"
  2. import typescriptEslint from "@typescript-eslint/eslint-plugin"
  3. import prettier from "eslint-plugin-prettier"
  4. import tsParser from "@typescript-eslint/parser"
  5. import path from "node:path"
  6. import { fileURLToPath } from "node:url"
  7. import js from "@eslint/js"
  8. import { FlatCompat } from "@eslint/eslintrc"
  9. const __filename = fileURLToPath(import.meta.url)
  10. const __dirname = path.dirname(__filename)
  11. const compat = new FlatCompat({
  12. baseDirectory: __dirname,
  13. recommendedConfig: js.configs.recommended,
  14. allConfig: js.configs.all,
  15. })
  16. export default defineConfig([
  17. globalIgnores([
  18. "**/node_modules",
  19. "**/coverage",
  20. "**/deployments",
  21. "**/artifacts",
  22. "**/cache",
  23. "**/typechain-types",
  24. ]),
  25. {
  26. extends: compat.extends("eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"),
  27. plugins: {
  28. "@typescript-eslint": typescriptEslint,
  29. prettier,
  30. },
  31. languageOptions: {
  32. globals: {},
  33. parser: tsParser,
  34. ecmaVersion: "latest",
  35. sourceType: "module",
  36. },
  37. rules: {
  38. "prettier/prettier": "warn",
  39. "@typescript-eslint/no-unused-vars": "warn",
  40. "@typescript-eslint/no-explicit-any": "warn",
  41. },
  42. },
  43. ])