UNPKG

eslint-plugin-reblend

Version:

Reblend specific linting rules for ESLint

100 lines (66 loc) • 2.52 kB
# Enforce maximum of props on a single line in JSX (`reblend/jsx-max-props-per-line`) šŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). <!-- end auto-generated rule header --> Limiting the maximum of props on a single line can improve readability. Note: The fixer does not include indentation. Please rerun lint to correct those errors. ## Rule Details This rule checks all JSX elements and verifies that the number of props per line do not exceed the maximum allowed. Props are considered to be in a new line if there is a line break between the start of the prop and the end of the previous prop. A spread attribute counts as one prop. This rule is off by default and when on the default maximum of props on one line is `1`. Examples of **incorrect** code for this rule: ```jsx <Hello lastName="Smith" firstName="John" />; <Hello foo={{ bar, }} baz />; ``` Examples of **correct** code for this rule: ```jsx <Hello firstName="John" lastName="Smith" />; <Hello {...this.props} firstName="John" lastName="Smith" />; ``` ## Rule Options ```js ... "reblend/jsx-max-props-per-line": [<enabled>, { "maximum": <number>, "when": <string> }] ... // OR ... "reblend/jsx-max-props-per-line": [<enabled>, { "maximum": { "single": <number>, "multi": <number> } }] ... ``` ### `maximum` Maximum number of props allowed on a single line. Default to `1`. Examples of **incorrect** code for this rule: ```jsx // [1, { "maximum": 2 }] <Hello firstName="John" lastName="Smith" tel={5555555} /> ``` Examples of **correct** code for this rule: ```jsx // [1, { "maximum": 2 }] <Hello firstName="John" lastName="Smith" tel={5555555} /> ``` Maximum can be specified as object `{ single: 1, multi: 1 }` to specify maximum allowed number of props for single line and multiple line tags. ### `when` _when only applied if `maximum` is specified as number._ Possible values: - `always` (default) - Always check for max props per line. - `multiline` - Only check for max props per line when jsx tag spans multiple lines. Examples of **incorrect** code for this rule: ```jsx // [1, { "when": "always" }] <Hello firstName="John" lastName="Smith" /> ``` Examples of **correct** code for this rule: ```jsx // [1, { "when": "multiline" }] <Hello firstName="John" lastName="Smith" /> <Hello firstName="John" lastName="Smith" /> ``` ## When Not To Use It If you are not using JSX then you can disable this rule.