hatch-surf/node_modules/eslint-plugin-import/docs/rules/max-dependencies.md
Riley Zhang df378d33ef
Some checks failed
CI / go (push) Waiting to run
CI / docker (push) Waiting to run
CI / lint-go (push) Waiting to run
CI / lint-docs (push) Waiting to run
CI / check-paperclip (push) Waiting to run
Deploy static site / Deploy to GitHub Pages (push) Has been cancelled
Deploy static site / Deploy via Docker to hatch.surf (push) Has been cancelled
Merge GitHub main into Gitea repo (allow unrelated histories)
Resolved conflicts by taking GitHub versions for:
- .dockerignore, .gitignore, Dockerfile, README.md, docker-compose.yml

Kept deploy.sh updated to:
- Pull from GitHub (primary source)
- Push to Gitea (push-mirror)
- Build from site/ directory (GitHub structure)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-25 05:20:46 +02:00

1.8 KiB

import/max-dependencies

Forbid modules to have too many dependencies (import or require statements).

This is a useful rule because a module with too many dependencies is a code smell, and usually indicates the module is doing too much and/or should be broken up into smaller modules.

Importing multiple named exports from a single module will only count once (e.g. import {x, y, z} from './foo' will only count as a single dependency).

Options

This rule has the following options, with these defaults:

"import/max-dependencies": ["error", {
  "max": 10,
  "ignoreTypeImports": false,
}]

max

This option sets the maximum number of dependencies allowed. Anything over will trigger the rule. Default is 10 if the rule is enabled and no max is specified.

Given a max value of {"max": 2}:

Fail

import a from './a'; // 1
const b = require('./b'); // 2
import c from './c'; // 3 - exceeds max!

Pass

import a from './a'; // 1
const anotherA = require('./a'); // still 1
import {x, y, z} from './foo'; // 2

ignoreTypeImports

Ignores type imports. Type imports are a feature released in TypeScript 3.8, you can read more here. Defaults to false.

Given {"max": 2, "ignoreTypeImports": true}:

Fail

import a from './a';
import b from './b';
import c from './c';

Pass

import a from './a';
import b from './b';
import type c from './c'; // Doesn't count against max

When Not To Use It

If you don't care how many dependencies a module has.