diff --git a/lib/rules/space-unary-ops.js b/lib/rules/space-unary-ops.js index 5032b46c3b05..c4265d52e3af 100644 --- a/lib/rules/space-unary-ops.js +++ b/lib/rules/space-unary-ops.js @@ -44,7 +44,14 @@ module.exports = { }, additionalProperties: false } - ] + ], + messages: { + unexpectedBefore: "Unexpected space before unary operator '{{operator}}'.", + unexpectedAfter: "Unexpected space after unary operator '{{word}}'.", + wordOperator: "Unary word operator '{{word}}' must be followed by whitespace.", + operator: "Unary operator '{{operator}}' must be followed by whitespace.", + beforeUnaryExpressions: "Space is required before unary expressions '{{token}}'." + } }, create(context) { @@ -96,7 +103,7 @@ module.exports = { if (secondToken.range[0] === firstToken.range[1]) { context.report({ node, - message: "Unary word operator '{{word}}' must be followed by whitespace.", + messageId: "wordOperator", data: { word }, @@ -120,7 +127,7 @@ module.exports = { if (secondToken.range[0] > firstToken.range[1]) { context.report({ node, - message: "Unexpected space after unary word operator '{{word}}'.", + messageId: "unexpectedAfter", data: { word }, @@ -196,7 +203,7 @@ module.exports = { if (firstToken.range[1] === secondToken.range[0]) { context.report({ node, - message: "Unary operator '{{operator}}' must be followed by whitespace.", + messageId: "operator", data: { operator: firstToken.value }, @@ -209,7 +216,7 @@ module.exports = { if (firstToken.range[1] === secondToken.range[0]) { context.report({ node, - message: "Space is required before unary expressions '{{token}}'.", + messageId: "beforeUnaryExpressions", data: { token: secondToken.value }, @@ -233,9 +240,9 @@ module.exports = { if (secondToken.range[0] > firstToken.range[1]) { context.report({ node, - message: "Unexpected space after unary operator '{{operator}}'.", + messageId: "unexpectedAfter", data: { - operator: firstToken.value + word: firstToken.value }, fix(fixer) { if (astUtils.canTokensBeAdjacent(firstToken, secondToken)) { @@ -249,7 +256,7 @@ module.exports = { if (secondToken.range[0] > firstToken.range[1]) { context.report({ node, - message: "Unexpected space before unary operator '{{operator}}'.", + messageId: "unexpectedBefore", data: { operator: secondToken.value }, diff --git a/tests/lib/rules/space-unary-ops.js b/tests/lib/rules/space-unary-ops.js index 11b2c96bfc13..52daa8fbd03d 100644 --- a/tests/lib/rules/space-unary-ops.js +++ b/tests/lib/rules/space-unary-ops.js @@ -259,7 +259,8 @@ ruleTester.run("space-unary-ops", rule, { output: "delete (foo.bar)", options: [{ words: true }], errors: [{ - message: "Unary word operator 'delete' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "delete" }, type: "UnaryExpression" }] }, @@ -268,7 +269,8 @@ ruleTester.run("space-unary-ops", rule, { output: "delete (foo[\"bar\"]);", options: [{ words: true }], errors: [{ - message: "Unary word operator 'delete' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "delete" }, type: "UnaryExpression" }] }, @@ -277,7 +279,8 @@ ruleTester.run("space-unary-ops", rule, { output: "delete(foo.bar)", options: [{ words: false }], errors: [{ - message: "Unexpected space after unary word operator 'delete'.", + messageId: "unexpectedAfter", + data: { word: "delete" }, type: "UnaryExpression" }] }, @@ -286,7 +289,8 @@ ruleTester.run("space-unary-ops", rule, { output: "new (Foo)", options: [{ words: true }], errors: [{ - message: "Unary word operator 'new' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "new" }, type: "NewExpression" }] }, @@ -295,7 +299,8 @@ ruleTester.run("space-unary-ops", rule, { output: "new(Foo)", options: [{ words: false }], errors: [{ - message: "Unexpected space after unary word operator 'new'.", + messageId: "unexpectedAfter", + data: { word: "new" }, type: "NewExpression" }] }, @@ -304,7 +309,8 @@ ruleTester.run("space-unary-ops", rule, { output: "new (Foo())", options: [{ words: true }], errors: [{ - message: "Unary word operator 'new' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "new" }, type: "NewExpression" }] }, @@ -313,7 +319,8 @@ ruleTester.run("space-unary-ops", rule, { output: "new[foo][0]", options: [{ words: false }], errors: [{ - message: "Unexpected space after unary word operator 'new'.", + messageId: "unexpectedAfter", + data: { word: "new" }, type: "NewExpression" }] }, @@ -323,7 +330,8 @@ ruleTester.run("space-unary-ops", rule, { output: "typeof (foo)", options: [{ words: true }], errors: [{ - message: "Unary word operator 'typeof' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "typeof" }, type: "UnaryExpression" }] }, @@ -332,7 +340,8 @@ ruleTester.run("space-unary-ops", rule, { output: "typeof(foo)", options: [{ words: false }], errors: [{ - message: "Unexpected space after unary word operator 'typeof'.", + messageId: "unexpectedAfter", + data: { word: "typeof" }, type: "UnaryExpression" }] }, @@ -341,7 +350,8 @@ ruleTester.run("space-unary-ops", rule, { output: "typeof [foo]", options: [{ words: true }], errors: [{ - message: "Unary word operator 'typeof' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "typeof" }, type: "UnaryExpression" }] }, @@ -350,7 +360,8 @@ ruleTester.run("space-unary-ops", rule, { output: "typeof[foo]", options: [{ words: false }], errors: [{ - message: "Unexpected space after unary word operator 'typeof'.", + messageId: "unexpectedAfter", + data: { word: "typeof" }, type: "UnaryExpression" }] }, @@ -359,7 +370,8 @@ ruleTester.run("space-unary-ops", rule, { output: "typeof {foo:true}", options: [{ words: true }], errors: [{ - message: "Unary word operator 'typeof' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "typeof" }, type: "UnaryExpression" }] }, @@ -368,7 +380,8 @@ ruleTester.run("space-unary-ops", rule, { output: "typeof{foo:true}", options: [{ words: false }], errors: [{ - message: "Unexpected space after unary word operator 'typeof'.", + messageId: "unexpectedAfter", + data: { word: "typeof" }, type: "UnaryExpression" }] }, @@ -377,7 +390,8 @@ ruleTester.run("space-unary-ops", rule, { output: "typeof !foo", options: [{ words: true }], errors: [{ - message: "Unary word operator 'typeof' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "typeof" }, type: "UnaryExpression" }] }, @@ -387,7 +401,8 @@ ruleTester.run("space-unary-ops", rule, { output: "void (0);", options: [{ words: true }], errors: [{ - message: "Unary word operator 'void' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "void" }, type: "UnaryExpression" }] }, @@ -396,7 +411,8 @@ ruleTester.run("space-unary-ops", rule, { output: "void (foo);", options: [{ words: true }], errors: [{ - message: "Unary word operator 'void' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "void" }, type: "UnaryExpression" }] }, @@ -405,7 +421,8 @@ ruleTester.run("space-unary-ops", rule, { output: "void [foo];", options: [{ words: true }], errors: [{ - message: "Unary word operator 'void' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "void" }, type: "UnaryExpression" }] }, @@ -414,7 +431,8 @@ ruleTester.run("space-unary-ops", rule, { output: "void {a:0};", options: [{ words: true }], errors: [{ - message: "Unary word operator 'void' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "void" }, type: "UnaryExpression" }] }, @@ -423,7 +441,8 @@ ruleTester.run("space-unary-ops", rule, { output: "void(foo)", options: [{ words: false }], errors: [{ - message: "Unexpected space after unary word operator 'void'.", + messageId: "unexpectedAfter", + data: { word: "void" }, type: "UnaryExpression" }] }, @@ -432,7 +451,8 @@ ruleTester.run("space-unary-ops", rule, { output: "void[foo]", options: [{ words: false }], errors: [{ - message: "Unexpected space after unary word operator 'void'.", + messageId: "unexpectedAfter", + data: { word: "void" }, type: "UnaryExpression" }] }, @@ -450,7 +470,7 @@ ruleTester.run("space-unary-ops", rule, { output: "! foo", options: [{ nonwords: true }], errors: [{ - message: "Unary operator '!' must be followed by whitespace." + messageId: "operator", data: { operator: "!" } }] }, @@ -470,7 +490,8 @@ ruleTester.run("space-unary-ops", rule, { output: "!! foo", options: [{ nonwords: true }], errors: [{ - message: "Unary operator '!' must be followed by whitespace.", + messageId: "operator", + data: { operator: "!" }, type: "UnaryExpression", line: 1, column: 2 @@ -491,7 +512,8 @@ ruleTester.run("space-unary-ops", rule, { output: "- 1", options: [{ nonwords: true }], errors: [{ - message: "Unary operator '-' must be followed by whitespace.", + messageId: "operator", + data: { operator: "-" }, type: "UnaryExpression" }] }, @@ -501,7 +523,7 @@ ruleTester.run("space-unary-ops", rule, { output: "foo ++", options: [{ nonwords: true }], errors: [{ - message: "Space is required before unary expressions '++'." + messageId: "beforeUnaryExpressions", data: { token: "++" } }] }, { @@ -509,7 +531,7 @@ ruleTester.run("space-unary-ops", rule, { output: "foo++", options: [{ nonwords: false }], errors: [{ - message: "Unexpected space before unary operator '++'." + messageId: "unexpectedBefore", data: { operator: "++" } }] }, { @@ -525,7 +547,7 @@ ruleTester.run("space-unary-ops", rule, { output: "++ foo", options: [{ nonwords: true }], errors: [{ - message: "Unary operator '++' must be followed by whitespace." + messageId: "operator", data: { operator: "++" } }] }, { @@ -533,14 +555,14 @@ ruleTester.run("space-unary-ops", rule, { output: "foo .bar ++", options: [{ nonwords: true }], errors: [{ - message: "Space is required before unary expressions '++'." + messageId: "beforeUnaryExpressions", data: { token: "++" } }] }, { code: "foo.bar --", output: "foo.bar--", errors: [{ - message: "Unexpected space before unary operator '--'." + messageId: "unexpectedBefore", data: { operator: "--" } }] }, { @@ -588,7 +610,8 @@ ruleTester.run("space-unary-ops", rule, { output: "function *foo() { yield (0) }", parserOptions: { ecmaVersion: 6 }, errors: [{ - message: "Unary word operator 'yield' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "yield" }, type: "YieldExpression", line: 1, column: 19 @@ -600,7 +623,8 @@ ruleTester.run("space-unary-ops", rule, { options: [{ words: false }], parserOptions: { ecmaVersion: 6 }, errors: [{ - message: "Unexpected space after unary word operator 'yield'.", + messageId: "unexpectedAfter", + data: { word: "yield" }, type: "YieldExpression", line: 1, column: 19 @@ -611,7 +635,8 @@ ruleTester.run("space-unary-ops", rule, { output: "function *foo() { yield +0 }", parserOptions: { ecmaVersion: 6 }, errors: [{ - message: "Unary word operator 'yield' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "yield" }, type: "YieldExpression", line: 1, column: 19 @@ -622,7 +647,7 @@ ruleTester.run("space-unary-ops", rule, { output: "foo ++", options: [{ nonwords: true, overrides: { "++": true } }], errors: [{ - message: "Space is required before unary expressions '++'." + messageId: "beforeUnaryExpressions", data: { token: "++" } }] }, { @@ -630,7 +655,7 @@ ruleTester.run("space-unary-ops", rule, { output: "foo ++", options: [{ nonwords: false, overrides: { "++": true } }], errors: [{ - message: "Space is required before unary expressions '++'." + messageId: "beforeUnaryExpressions", data: { token: "++" } }] }, { @@ -638,7 +663,7 @@ ruleTester.run("space-unary-ops", rule, { output: "++ foo", options: [{ nonwords: true, overrides: { "++": true } }], errors: [{ - message: "Unary operator '++' must be followed by whitespace." + messageId: "operator", data: { operator: "++" } }] }, { @@ -646,7 +671,7 @@ ruleTester.run("space-unary-ops", rule, { output: "++ foo", options: [{ nonwords: false, overrides: { "++": true } }], errors: [{ - message: "Unary operator '++' must be followed by whitespace." + messageId: "operator", data: { operator: "++" } }] }, { @@ -654,7 +679,7 @@ ruleTester.run("space-unary-ops", rule, { output: "! foo", options: [{ nonwords: true, overrides: { "!": true } }], errors: [{ - message: "Unary operator '!' must be followed by whitespace." + messageId: "operator", data: { operator: "!" } }] }, { @@ -662,7 +687,7 @@ ruleTester.run("space-unary-ops", rule, { output: "! foo", options: [{ nonwords: false, overrides: { "!": true } }], errors: [{ - message: "Unary operator '!' must be followed by whitespace." + messageId: "operator", data: { operator: "!" } }] }, { @@ -670,7 +695,7 @@ ruleTester.run("space-unary-ops", rule, { output: "new (Foo)", options: [{ words: true, overrides: { new: true } }], errors: [{ - message: "Unary word operator 'new' must be followed by whitespace." + messageId: "wordOperator", data: { word: "new" } }] }, { @@ -678,7 +703,7 @@ ruleTester.run("space-unary-ops", rule, { output: "new (Foo)", options: [{ words: false, overrides: { new: true } }], errors: [{ - message: "Unary word operator 'new' must be followed by whitespace." + messageId: "wordOperator", data: { word: "new" } }] }, { @@ -687,7 +712,8 @@ ruleTester.run("space-unary-ops", rule, { options: [{ words: true, overrides: { yield: true } }], parserOptions: { ecmaVersion: 6 }, errors: [{ - message: "Unary word operator 'yield' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "yield" }, type: "YieldExpression", line: 1, column: 19 @@ -699,7 +725,8 @@ ruleTester.run("space-unary-ops", rule, { options: [{ words: false, overrides: { yield: true } }], parserOptions: { ecmaVersion: 6 }, errors: [{ - message: "Unary word operator 'yield' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "yield" }, type: "YieldExpression", line: 1, column: 19 @@ -710,7 +737,8 @@ ruleTester.run("space-unary-ops", rule, { output: "async function foo() { await {foo: 'bar'} }", parserOptions: { ecmaVersion: 8 }, errors: [{ - message: "Unary word operator 'await' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "await" }, type: "AwaitExpression", line: 1, column: 24 @@ -722,7 +750,8 @@ ruleTester.run("space-unary-ops", rule, { options: [{ words: false, overrides: { await: true } }], parserOptions: { ecmaVersion: 8 }, errors: [{ - message: "Unary word operator 'await' must be followed by whitespace.", + messageId: "wordOperator", + data: { word: "await" }, type: "AwaitExpression", line: 1, column: 24 @@ -734,7 +763,8 @@ ruleTester.run("space-unary-ops", rule, { options: [{ words: false }], parserOptions: { ecmaVersion: 8 }, errors: [{ - message: "Unexpected space after unary word operator 'await'.", + messageId: "unexpectedAfter", + data: { word: "await" }, type: "AwaitExpression", line: 1, column: 24 @@ -746,7 +776,8 @@ ruleTester.run("space-unary-ops", rule, { options: [{ words: true, overrides: { await: false } }], parserOptions: { ecmaVersion: 8 }, errors: [{ - message: "Unexpected space after unary word operator 'await'.", + messageId: "unexpectedAfter", + data: { word: "await" }, type: "AwaitExpression", line: 1, column: 24