max-classes-per-file

Enforce a maximum number of classes per file

When a file holds several classes, its name can only describe one of them, and the others are hard to find.

Class declarations and class expressions both count. The default maximum is 1.

Configure#

Off by default. To turn it on:

bunfig.toml
[lint.rules]
"max-classes-per-file" = "error" # or "warn"

Every option, set to its default:

bunfig.toml
[lint.rules]
"max-classes-per-file" = ["error", {
  max = 1,
  ignoreExpressions = false,
}]

Examples#

example.js1 problem
class User {}

class Session {}
example.jsNo problems
class User {}

Options#

bunfig.toml
[lint.rules]
max-classes-per-file = ["error", { max = 2, ignoreExpressions = true }]

The option is either a number (the maximum) or an object:

OptionDefaultWhat it does
max1The number of classes a file can have.
ignoreExpressionsfalseDon't count class expressions.
example.jswith 2No problems
class User {}

class Session {}
example.jswith { "max": 2 }1 problem
class User {}

class Session {}

class Token {}

ignoreExpressions#

example.js1 problem
class User {}

const Guest = class extends User {};
example.jswith { "ignoreExpressions": true }No problems
class User {}

const Guest = class extends User {};