.oxlintrc.json

{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "plugins": ["typescript", "oxc", "promise"],
  "categories": { "correctness": "error" },
  "options": { "reportUnusedDisableDirectives": "error" },
  "rules": {
    "array-callback-return": "error",
    "eqeqeq": ["error", "always", { "null": "ignore" }],
    "no-empty": "error",
    "no-fallthrough": "off",
    "no-self-compare": "error",
    "no-template-curly-in-string": "error",
    "no-promise-executor-return": "error",
    "no-throw-literal": "error",
    "prefer-promise-reject-errors": "error",
    "typescript/ban-ts-comment": [
      "error",
      {
        "ts-ignore": true,
        "ts-nocheck": true,
        "ts-expect-error": "allow-with-description",
        "ts-check": false,
        "minimumDescriptionLength": 3
      }
    ],
    "typescript/no-explicit-any": "error",
    "typescript/no-require-imports": "error",
    "promise/catch-or-return": ["error", { "allowThen": true, "allowFinally": true }],
    "promise/no-multiple-resolved": "error",
    "promise/no-callback-in-promise": "off"
  },
  "ignorePatterns": ["node_modules/", "dist/", "artifacts/", "ios/", "android/", "/native/"],
  "overrides": [
    {
      "files": ["scripts/**/*.mjs", "test/**/*.mjs"],
      "env": { "node": true },
      "rules": {
        "no-undef": "error",
        "no-fallthrough": "error"
      }
    },
    {
      "files": ["src/**", "packages/**", "demo/**", "app/**", "scripts/templates/**"],
      "rules": {
        "no-restricted-imports": [
          "error",
          {
            "patterns": [
              {
                "group": [
                  "react",
                  "react/**",
                  "react-dom",
                  "react-dom/**",
                  "react-native",
                  "react-native/**",
                  "react-reconciler",
                  "react-reconciler/**",
                  "solid-js/web",
                  "solid-js/web/**"
                ],
                "message": "Use Solid core and the native renderer/components, not React/RN JS or the DOM renderer."
              }
            ]
          }
        ]
      }
    },
    {
      "files": ["test/types/**"],
      "rules": {
        "no-unused-vars": "off",
        "no-unused-expressions": "off"
      }
    }
  ]
}