← back to Open Seo

.oxlintrc.json

70 lines

{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "categories": {
    "correctness": "error",
    "suspicious": "error"
  },
  "plugins": ["typescript", "import", "react", "unicorn", "oxc"],
  "ignorePatterns": [
    "node_modules",
    "dist",
    ".output",
    "web",
    "src/routeTree.gen.ts",
    "worker-configuration.d.ts",
    "scripts"
  ],
  "rules": {
    "react/react-in-jsx-scope": "off",
    "react/jsx-uses-react": "off",
    "unicorn/no-array-sort": "error",
    "typescript/no-explicit-any": "error",
    "typescript/consistent-type-imports": "error",
    "typescript/no-unsafe-type-assertion": "error",
    "typescript/no-unnecessary-type-assertion": [
      "error",
      { "checkLiteralConstAssertions": false }
    ],
    "typescript/no-unsafe-member-access": "error",
    "typescript/no-unsafe-assignment": "error",
    "typescript/no-unsafe-call": "error",
    "typescript/no-unsafe-return": "error",
    "typescript/no-unsafe-argument": "error",
    "eslint/no-constant-binary-expression": "error",
    "eslint/no-self-assign": "error",
    "eslint/no-unreachable-loop": "error",
    "eslint/no-unsafe-optional-chaining": "error",
    "eslint/complexity": ["error", { "max": 40 }],
    "eslint/max-lines": [
      "error",
      { "max": 400, "skipBlankLines": true, "skipComments": true }
    ],
    "eslint/max-lines-per-function": [
      "error",
      { "max": 320, "skipBlankLines": true, "skipComments": true }
    ],
    "eslint/max-depth": ["error", 4],
    "eslint/max-params": ["error", 5],
    "import/no-cycle": "error",
    "eslint/no-restricted-imports": [
      "error",
      {
        "patterns": [
          {
            "group": ["@/db/d1", "@/db/d1/*", "@/db/pg", "@/db/pg/*"],
            "message": "Import the provider-aware `db` from \"@/db\", tables from \"@/db/schema\", and batched writes via \"@/db/runBatch\". Dialect-specific clients/schemas may only be imported by the seam files in src/db and src/lib/auth.ts, otherwise the code silently bypasses DATABASE_PROVIDER."
          }
        ]
      }
    ]
  },
  "overrides": [
    {
      "files": ["src/db/**", "src/lib/auth.ts"],
      "rules": {
        "eslint/no-restricted-imports": "off"
      }
    }
  ]
}