@@ -54,15 +54,15 @@ module.exports = {
54
54
55
55
create : function ( context ) {
56
56
57
+ var DEFAULT_SPACING = SPACING . never ;
57
58
var DEFAULT_ALLOW_MULTILINE = true ;
58
59
59
60
var sourceCode = context . getSourceCode ( ) ;
60
- var spaced = context . options [ 0 ] === SPACING . always ;
61
+ var baseSpacing = context . options [ 0 ] || DEFAULT_SPACING ;
61
62
var config = context . options [ 1 ] || { } ;
62
63
var multiline = has ( config , 'allowMultiline' ) ? config . allowMultiline : DEFAULT_ALLOW_MULTILINE ;
63
- var spacing = config . spacing || { } ;
64
- var defaultSpacing = spaced ? SPACING . always : SPACING . never ;
65
- var objectLiteralSpacing = spacing . objectLiterals || ( spaced ? SPACING . always : SPACING . never ) ;
64
+ var spacingConfig = config . spacing || { } ;
65
+ var objectLiteralSpacing = spacingConfig . objectLiterals || baseSpacing ;
66
66
67
67
// --------------------------------------------------------------------------
68
68
// Helpers
@@ -84,14 +84,14 @@ module.exports = {
84
84
* @param {Token } token - The token to use for the report.
85
85
* @returns {void }
86
86
*/
87
- function reportNoBeginningNewline ( node , token ) {
87
+ function reportNoBeginningNewline ( node , token , spacing ) {
88
88
context . report ( {
89
89
node : node ,
90
90
loc : token . loc . start ,
91
91
message : `There should be no newline after '${ token . value } '` ,
92
92
fix : function ( fixer ) {
93
93
var nextToken = sourceCode . getTokenAfter ( token ) ;
94
- return fixer . replaceTextRange ( [ token . range [ 1 ] , nextToken . range [ 0 ] ] , spaced ? ' ' : '' ) ;
94
+ return fixer . replaceTextRange ( [ token . range [ 1 ] , nextToken . range [ 0 ] ] , spacing === SPACING . always ? ' ' : '' ) ;
95
95
}
96
96
} ) ;
97
97
}
@@ -102,14 +102,14 @@ module.exports = {
102
102
* @param {Token } token - The token to use for the report.
103
103
* @returns {void }
104
104
*/
105
- function reportNoEndingNewline ( node , token ) {
105
+ function reportNoEndingNewline ( node , token , spacing ) {
106
106
context . report ( {
107
107
node : node ,
108
108
loc : token . loc . start ,
109
109
message : `There should be no newline before '${ token . value } '` ,
110
110
fix : function ( fixer ) {
111
111
var previousToken = sourceCode . getTokenBefore ( token ) ;
112
- return fixer . replaceTextRange ( [ previousToken . range [ 1 ] , token . range [ 0 ] ] , spaced ? ' ' : '' ) ;
112
+ return fixer . replaceTextRange ( [ previousToken . range [ 1 ] , token . range [ 0 ] ] , spacing === SPACING . always ? ' ' : '' ) ;
113
113
}
114
114
} ) ;
115
115
}
@@ -217,53 +217,29 @@ module.exports = {
217
217
}
218
218
219
219
var isObjectLiteral = first . value === second . value ;
220
- if ( isObjectLiteral ) {
221
- if ( objectLiteralSpacing === SPACING . never ) {
222
- if ( sourceCode . isSpaceBetweenTokens ( first , second ) ) {
223
- reportNoBeginningSpace ( node , first ) ;
224
- } else if ( ! multiline && isMultiline ( first , second ) ) {
225
- reportNoBeginningNewline ( node , first ) ;
226
- }
227
- if ( sourceCode . isSpaceBetweenTokens ( penultimate , last ) ) {
228
- reportNoEndingSpace ( node , last ) ;
229
- } else if ( ! multiline && isMultiline ( penultimate , last ) ) {
230
- reportNoEndingNewline ( node , last ) ;
231
- }
232
- } else if ( objectLiteralSpacing === SPACING . always ) {
233
- if ( ! sourceCode . isSpaceBetweenTokens ( first , second ) ) {
234
- reportRequiredBeginningSpace ( node , first ) ;
235
- } else if ( ! multiline && isMultiline ( first , second ) ) {
236
- reportNoBeginningNewline ( node , first ) ;
237
- }
238
- if ( ! sourceCode . isSpaceBetweenTokens ( penultimate , last ) ) {
239
- reportRequiredEndingSpace ( node , last ) ;
240
- } else if ( ! multiline && isMultiline ( penultimate , last ) ) {
241
- reportNoEndingNewline ( node , last ) ;
242
- }
243
- }
244
- } else if ( defaultSpacing === SPACING . always ) {
220
+ var spacing = isObjectLiteral ? objectLiteralSpacing : baseSpacing ;
221
+ if ( spacing === SPACING . always ) {
245
222
if ( ! sourceCode . isSpaceBetweenTokens ( first , second ) ) {
246
223
reportRequiredBeginningSpace ( node , first ) ;
247
224
} else if ( ! multiline && isMultiline ( first , second ) ) {
248
- reportNoBeginningNewline ( node , first ) ;
225
+ reportNoBeginningNewline ( node , first , spacing ) ;
249
226
}
250
-
251
227
if ( ! sourceCode . isSpaceBetweenTokens ( penultimate , last ) ) {
252
228
reportRequiredEndingSpace ( node , last ) ;
253
229
} else if ( ! multiline && isMultiline ( penultimate , last ) ) {
254
- reportNoEndingNewline ( node , last ) ;
230
+ reportNoEndingNewline ( node , last , spacing ) ;
255
231
}
256
- } else if ( defaultSpacing === SPACING . never ) {
232
+ } else if ( spacing === SPACING . never ) {
257
233
if ( isMultiline ( first , second ) ) {
258
234
if ( ! multiline ) {
259
- reportNoBeginningNewline ( node , first ) ;
235
+ reportNoBeginningNewline ( node , first , spacing ) ;
260
236
}
261
237
} else if ( sourceCode . isSpaceBetweenTokens ( first , second ) ) {
262
238
reportNoBeginningSpace ( node , first ) ;
263
239
}
264
240
if ( isMultiline ( penultimate , last ) ) {
265
241
if ( ! multiline ) {
266
- reportNoEndingNewline ( node , last ) ;
242
+ reportNoEndingNewline ( node , last , spacing ) ;
267
243
}
268
244
} else if ( sourceCode . isSpaceBetweenTokens ( penultimate , last ) ) {
269
245
reportNoEndingSpace ( node , last ) ;
0 commit comments