Skip to content

Commit 9dcfd39

Browse files
committed
feat: migrate all message to messageId
1 parent 5e4546d commit 9dcfd39

10 files changed

+60
-30
lines changed

rules/always-return.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ function isMemberCall(memberName, node) {
4444
/** @param {Node} node */
4545
function isFirstArgument(node) {
4646
return Boolean(
47-
node.parent && node.parent.arguments && node.parent.arguments[0] === node
47+
node.parent && node.parent.arguments && node.parent.arguments[0] === node,
4848
)
4949
}
5050

@@ -143,6 +143,9 @@ module.exports = {
143143
additionalProperties: false,
144144
},
145145
],
146+
messages: {
147+
thenShouldThrow: 'Each then() should return a value or throw',
148+
},
146149
},
147150
create(context) {
148151
const options = context.options[0] || {}
@@ -242,7 +245,7 @@ module.exports = {
242245
const branch = funcInfo.branchInfoMap[id]
243246
if (!branch.good) {
244247
context.report({
245-
message: 'Each then() should return a value or throw',
248+
messageId: 'thenShouldThrow',
246249
node: branch.node,
247250
})
248251
}

rules/avoid-new.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,15 @@ module.exports = {
1616
url: getDocsUrl('avoid-new'),
1717
},
1818
schema: [],
19+
messages: {
20+
avoidNew: 'Avoid creating new promises.',
21+
},
1922
},
2023
create(context) {
2124
return {
2225
NewExpression(node) {
2326
if (node.callee.name === 'Promise') {
24-
context.report({ node, message: 'Avoid creating new promises.' })
27+
context.report({ node, messageId: 'avoidNew' })
2528
}
2629
},
2730
}

rules/no-multiple-resolved.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -167,12 +167,12 @@ class CodePathInfo {
167167
*/
168168
*iterateReports(promiseCodePathContext) {
169169
const targets = [...this.segmentInfos.values()].filter(
170-
(info) => info.resolved
170+
(info) => info.resolved,
171171
)
172172
for (const segmentInfo of targets) {
173173
const result = this._getAlreadyResolvedData(
174174
segmentInfo.segment,
175-
promiseCodePathContext
175+
promiseCodePathContext,
176176
)
177177
if (result) {
178178
yield {
@@ -191,13 +191,13 @@ class CodePathInfo {
191191
*/
192192
_getAlreadyResolvedData(segment, promiseCodePathContext) {
193193
const prevSegments = segment.prevSegments.filter(
194-
(prev) => !promiseCodePathContext.isResolvedTryBlockCodePathSegment(prev)
194+
(prev) => !promiseCodePathContext.isResolvedTryBlockCodePathSegment(prev),
195195
)
196196
if (prevSegments.length === 0) {
197197
return null
198198
}
199199
const prevSegmentInfos = prevSegments.map((prev) =>
200-
this._getProcessedSegmentInfo(prev, promiseCodePathContext)
200+
this._getProcessedSegmentInfo(prev, promiseCodePathContext),
201201
)
202202
if (prevSegmentInfos.every((info) => info.resolved)) {
203203
// If the previous paths are all resolved, the next path is also resolved.
@@ -278,7 +278,7 @@ class CodePathInfo {
278278

279279
const alreadyResolvedData = this._getAlreadyResolvedData(
280280
segment,
281-
promiseCodePathContext
281+
promiseCodePathContext,
282282
)
283283
if (alreadyResolvedData) {
284284
if (alreadyResolvedData.kind === 'certain') {
@@ -375,7 +375,7 @@ module.exports = {
375375
*/
376376
function verifyMultipleResolvedPath(codePathInfo, promiseCodePathContext) {
377377
for (const { node, resolved, kind } of codePathInfo.iterateReports(
378-
promiseCodePathContext
378+
promiseCodePathContext,
379379
)) {
380380
report(node, resolved, kind)
381381
}
@@ -398,7 +398,7 @@ module.exports = {
398398
const resolverReferences = new Set()
399399
const resolvers = node.params.filter(
400400
/** @returns {node is Identifier} */
401-
(node) => node && node.type === 'Identifier'
401+
(node) => node && node.type === 'Identifier',
402402
)
403403
for (const resolver of resolvers) {
404404
const variable = getScope(context, node).set.get(resolver.name)
@@ -430,7 +430,7 @@ module.exports = {
430430
},
431431
/** @param {ThrowableExpression} node */
432432
'CallExpression, MemberExpression, NewExpression, ImportExpression, YieldExpression:exit'(
433-
node
433+
node,
434434
) {
435435
lastThrowableExpression = node
436436
},

rules/no-nesting.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ module.exports = {
1818
url: getDocsUrl('no-nesting'),
1919
},
2020
schema: [],
21+
messages: {
22+
avoidNesting: 'Avoid nesting promises.',
23+
},
2124
},
2225
create(context) {
2326
/**
@@ -96,13 +99,13 @@ module.exports = {
9699
//
97100
const closestCallbackScope = callbackScopes[0]
98101
for (const reference of iterateDefinedReferences(
99-
closestCallbackScope
102+
closestCallbackScope,
100103
)) {
101104
if (
102105
node.arguments.some(
103106
(arg) =>
104107
arg.range[0] <= reference.identifier.range[0] &&
105-
reference.identifier.range[1] <= arg.range[1]
108+
reference.identifier.range[1] <= arg.range[1],
106109
)
107110
) {
108111
// Argument callbacks refer to variables defined in the callback function.
@@ -112,7 +115,7 @@ module.exports = {
112115

113116
context.report({
114117
node: node.callee.property,
115-
message: 'Avoid nesting promises.',
118+
messageId: 'avoidNesting',
116119
})
117120
},
118121
}

rules/no-new-statics.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ module.exports = {
1212
},
1313
fixable: 'code',
1414
schema: [],
15+
messages: {
16+
avoidNewStatic: "Avoid calling 'new' on 'Promise.{{ name }}()'",
17+
},
1518
},
1619
create(context) {
1720
return {
@@ -23,12 +26,12 @@ module.exports = {
2326
) {
2427
context.report({
2528
node,
26-
message: "Avoid calling 'new' on 'Promise.{{ name }}()'",
29+
messageId: 'avoidNewStatic',
2730
data: { name: node.callee.property.name },
2831
fix(fixer) {
2932
return fixer.replaceTextRange(
3033
[node.range[0], node.range[0] + 'new '.length],
31-
''
34+
'',
3235
)
3336
},
3437
})

rules/no-promise-in-callback.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ module.exports = {
1818
url: getDocsUrl('no-promise-in-callback'),
1919
},
2020
schema: [],
21+
messages: {
22+
avoidPromiseInCallback: 'Avoid using promises inside of callbacks.',
23+
},
2124
},
2225
create(context) {
2326
return {
@@ -34,7 +37,7 @@ module.exports = {
3437
if (getAncestors(context, node).some(isInsideCallback)) {
3538
context.report({
3639
node: node.callee,
37-
message: 'Avoid using promises inside of callbacks.',
40+
messageId: 'avoidPromiseInCallback',
3841
})
3942
}
4043
},

rules/no-return-in-finally.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ module.exports = {
1111
url: getDocsUrl('no-return-in-finally'),
1212
},
1313
schema: [],
14+
messages: {
15+
avoidReturnInFinally: 'No return in finally',
16+
},
1417
},
1518
create(context) {
1619
return {
@@ -35,7 +38,7 @@ module.exports = {
3538
) {
3639
context.report({
3740
node: node.callee.property,
38-
message: 'No return in finally',
41+
messageId: 'avoidReturnInFinally',
3942
})
4043
}
4144
}

rules/param-names.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,18 @@ module.exports = {
2323
additionalProperties: false,
2424
},
2525
],
26+
messages: {
27+
resolveParamNames:
28+
'Promise constructor parameters must be named to match "{{ resolvePattern }}"',
29+
rejectParamNames:
30+
'Promise constructor parameters must be named to match "{{ rejectPattern }}"',
31+
},
2632
},
2733
create(context) {
2834
const options = context.options[0] || {}
2935
const resolvePattern = new RegExp(
3036
options.resolvePattern || '^_?resolve$',
31-
'u'
37+
'u',
3238
)
3339
const rejectPattern = new RegExp(options.rejectPattern || '^_?reject$', 'u')
3440

@@ -45,8 +51,7 @@ module.exports = {
4551
if (resolveParamName && !resolvePattern.test(resolveParamName)) {
4652
context.report({
4753
node: params[0],
48-
message:
49-
'Promise constructor parameters must be named to match "{{ resolvePattern }}"',
54+
messageId: 'resolveParamNames',
5055
data: {
5156
resolvePattern: resolvePattern.source,
5257
},
@@ -56,8 +61,7 @@ module.exports = {
5661
if (rejectParamName && !rejectPattern.test(rejectParamName)) {
5762
context.report({
5863
node: params[1],
59-
message:
60-
'Promise constructor parameters must be named to match "{{ rejectPattern }}"',
64+
messageId: 'rejectParamNames',
6165
data: {
6266
rejectPattern: rejectPattern.source,
6367
},

rules/prefer-await-to-then.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ module.exports = {
1717
url: getDocsUrl('prefer-await-to-then'),
1818
},
1919
schema: [],
20+
messages: {
21+
preferWaitToCallback: 'Prefer await to then()/catch()/finally().',
22+
},
2023
},
2124
create(context) {
2225
/** Returns true if node is inside yield or await expression. */
@@ -52,7 +55,7 @@ module.exports = {
5255
) {
5356
context.report({
5457
node: node.property,
55-
message: 'Prefer await to then()/catch()/finally().',
58+
messageId: 'preferWaitToCallback',
5659
})
5760
}
5861
},

rules/valid-params.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@ module.exports = {
1212
url: getDocsUrl('valid-params'),
1313
},
1414
schema: [],
15+
messages: {
16+
requireOneOptionalArgument:
17+
'Promise.{{ name }}() requires 0 or 1 arguments, but received {{ numArgs }}',
18+
requireOneArgument:
19+
'Promise.{{ name }}() requires 1 argument, but received {{ numArgs }}',
20+
requireTwoOptionalArgument:
21+
'Promise.{{ name }}() requires 1 or 2 arguments, but received {{ numArgs }}',
22+
},
1523
},
1624
create(context) {
1725
return {
@@ -30,8 +38,7 @@ module.exports = {
3038
if (numArgs > 1) {
3139
context.report({
3240
node,
33-
message:
34-
'Promise.{{ name }}() requires 0 or 1 arguments, but received {{ numArgs }}',
41+
messageId: 'requireOneOptionalArgument',
3542
data: { name, numArgs },
3643
})
3744
}
@@ -40,8 +47,7 @@ module.exports = {
4047
if (numArgs < 1 || numArgs > 2) {
4148
context.report({
4249
node,
43-
message:
44-
'Promise.{{ name }}() requires 1 or 2 arguments, but received {{ numArgs }}',
50+
messageId: 'requireTwoOptionalArgument',
4551
data: { name, numArgs },
4652
})
4753
}
@@ -55,8 +61,7 @@ module.exports = {
5561
if (numArgs !== 1) {
5662
context.report({
5763
node,
58-
message:
59-
'Promise.{{ name }}() requires 1 argument, but received {{ numArgs }}',
64+
messageId: 'requireOneArgument',
6065
data: { name, numArgs },
6166
})
6267
}

0 commit comments

Comments
 (0)