Skip to main content
interlace
Plugin: import-nextRules

no-cross-domain-imports

Prevents imports across domain/feature boundaries

šŸ’¼ This rule is enabled in the following configs: recommended, typescript. šŸ’” This rule is manually fixable by editor suggestions.

Rule Details

This rule aims to prevent issues related to cross-domain-imports.

Options

[
  {
    "type": "object",
    "properties": {
      "domainPatterns": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "default": [
          "domains",
          "features",
          "modules"
        ],
        "description": "Domain/feature directory patterns"
      },
      "allowedSharedModules": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "default": [
          "shared",
          "common",
          "utils"
        ],
        "description": "Shared modules that can be imported"
      },
      "ignoreNodeModules": {
        "type": "boolean",
        "default": true,
        "description": "Ignore imports from node_modules"
      },
      "customRules": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "from": {
              "type": "string"
            },
            "to": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "allowed": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "required": [
            "from",
            "to"
          ]
        },
        "default": [],
        "description": "Custom domain boundary rules"
      }
    },
    "additionalProperties": false
  }
]

Implementation

OWASP Foundation

  • Category: A00:2021 - General Security

Use this rule

npm install -D oxlint-plugin-import-next
.oxlintrc.json
{  "jsPlugins": ["oxlint-plugin-import-next"],  "rules": {    "import-next/no-cross-domain-imports": "error"  }}
vite.config.ts
import { defineConfig } from 'vite-plus';export default defineConfig({  lint: {    jsPlugins: ['oxlint-plugin-import-next'],    rules: {      'import-next/no-cross-domain-imports': 'error',    },  },});

oxlint-plugin-import-next re-exports eslint-plugin-import-next/oxlint: the same rules under the same IDs, and no ESLint install. Why oxlint.

Did this rule catch something? Star the repo to get new CWE coverage as we ship it — or follow the AI-code-security benchmarks behind these rules.