mirror of
https://git.proxmox.com/git/pve-eslint
synced 2025-10-10 14:23:21 +00:00

includes a (minimal) working wrapper Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
157 lines
4.3 KiB
Markdown
157 lines
4.3 KiB
Markdown
# enforce consistent spacing inside braces (object-curly-spacing)
|
|
|
|
While formatting preferences are very personal, a number of style guides require
|
|
or disallow spaces between curly braces in the following situations:
|
|
|
|
```js
|
|
// simple object literals
|
|
var obj = { foo: "bar" };
|
|
|
|
// nested object literals
|
|
var obj = { foo: { zoo: "bar" } };
|
|
|
|
// destructuring assignment (EcmaScript 6)
|
|
var { x, y } = y;
|
|
|
|
// import/export declarations (EcmaScript 6)
|
|
import { foo } from "bar";
|
|
export { foo };
|
|
```
|
|
|
|
## Rule Details
|
|
|
|
This rule enforces consistent spacing inside braces of object literals, destructuring assignments, and import/export specifiers.
|
|
|
|
## Options
|
|
|
|
This rule has two options, a string option and an object option.
|
|
|
|
String option:
|
|
|
|
* `"never"` (default) disallows spacing inside of braces
|
|
* `"always"` requires spacing inside of braces (except `{}`)
|
|
|
|
Object option:
|
|
|
|
* `"arraysInObjects": true` requires spacing inside of braces of objects beginning and/or ending with an array element (applies when the first option is set to `never`)
|
|
* `"arraysInObjects": false` disallows spacing inside of braces of objects beginning and/or ending with an array element (applies when the first option is set to `always`)
|
|
* `"objectsInObjects": true` requires spacing inside of braces of objects beginning and/or ending with an object element (applies when the first option is set to `never`)
|
|
* `"objectsInObjects": false` disallows spacing inside of braces of objects beginning and/or ending with an object element (applies when the first option is set to `always`)
|
|
|
|
### never
|
|
|
|
Examples of **incorrect** code for this rule with the default `"never"` option:
|
|
|
|
```js
|
|
/*eslint object-curly-spacing: ["error", "never"]*/
|
|
|
|
var obj = { 'foo': 'bar' };
|
|
var obj = {'foo': 'bar' };
|
|
var obj = { baz: {'foo': 'qux'}, bar};
|
|
var obj = {baz: { 'foo': 'qux'}, bar};
|
|
var {x } = y;
|
|
import { foo } from 'bar';
|
|
```
|
|
|
|
Examples of **correct** code for this rule with the default `"never"` option:
|
|
|
|
```js
|
|
/*eslint object-curly-spacing: ["error", "never"]*/
|
|
|
|
var obj = {'foo': 'bar'};
|
|
var obj = {'foo': {'bar': 'baz'}, 'qux': 'quxx'};
|
|
var obj = {
|
|
'foo': 'bar'
|
|
};
|
|
var obj = {'foo': 'bar'
|
|
};
|
|
var obj = {
|
|
'foo':'bar'};
|
|
var obj = {};
|
|
var {x} = y;
|
|
import {foo} from 'bar';
|
|
```
|
|
|
|
### always
|
|
|
|
Examples of **incorrect** code for this rule with the `"always"` option:
|
|
|
|
```js
|
|
/*eslint object-curly-spacing: ["error", "always"]*/
|
|
|
|
var obj = {'foo': 'bar'};
|
|
var obj = {'foo': 'bar' };
|
|
var obj = { baz: {'foo': 'qux'}, bar};
|
|
var obj = {baz: { 'foo': 'qux' }, bar};
|
|
var obj = {'foo': 'bar'
|
|
};
|
|
var obj = {
|
|
'foo':'bar'};
|
|
var {x} = y;
|
|
import {foo } from 'bar';
|
|
```
|
|
|
|
Examples of **correct** code for this rule with the `"always"` option:
|
|
|
|
```js
|
|
/*eslint object-curly-spacing: ["error", "always"]*/
|
|
|
|
var obj = {};
|
|
var obj = { 'foo': 'bar' };
|
|
var obj = { 'foo': { 'bar': 'baz' }, 'qux': 'quxx' };
|
|
var obj = {
|
|
'foo': 'bar'
|
|
};
|
|
var { x } = y;
|
|
import { foo } from 'bar';
|
|
```
|
|
|
|
#### arraysInObjects
|
|
|
|
Examples of additional **correct** code for this rule with the `"never", { "arraysInObjects": true }` options:
|
|
|
|
```js
|
|
/*eslint object-curly-spacing: ["error", "never", { "arraysInObjects": true }]*/
|
|
|
|
var obj = {"foo": [ 1, 2 ] };
|
|
var obj = {"foo": [ "baz", "bar" ] };
|
|
```
|
|
|
|
Examples of additional **correct** code for this rule with the `"always", { "arraysInObjects": false }` options:
|
|
|
|
```js
|
|
/*eslint object-curly-spacing: ["error", "always", { "arraysInObjects": false }]*/
|
|
|
|
var obj = { "foo": [ 1, 2 ]};
|
|
var obj = { "foo": [ "baz", "bar" ]};
|
|
```
|
|
|
|
#### objectsInObjects
|
|
|
|
Examples of additional **correct** code for this rule with the `"never", { "objectsInObjects": true }` options:
|
|
|
|
```js
|
|
/*eslint object-curly-spacing: ["error", "never", { "objectsInObjects": true }]*/
|
|
|
|
var obj = {"foo": {"baz": 1, "bar": 2} };
|
|
```
|
|
|
|
Examples of additional **correct** code for this rule with the `"always", { "objectsInObjects": false }` options:
|
|
|
|
```js
|
|
/*eslint object-curly-spacing: ["error", "always", { "objectsInObjects": false }]*/
|
|
|
|
var obj = { "foo": { "baz": 1, "bar": 2 }};
|
|
```
|
|
|
|
## When Not To Use It
|
|
|
|
You can turn this rule off if you are not concerned with the consistency of spacing between curly braces.
|
|
|
|
## Related Rules
|
|
|
|
* [array-bracket-spacing](array-bracket-spacing.md)
|
|
* [comma-spacing](comma-spacing.md)
|
|
* [computed-property-spacing](computed-property-spacing.md)
|
|
* [space-in-parens](space-in-parens.md)
|