Skip to content

Commit b43bb16

Browse files
authored
Fix false negatives when using parsers other than vue-eslint-parser in no-missing-keys (#312)
1 parent 69925e0 commit b43bb16

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

lib/rules/no-missing-keys.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@ import {
55
defineTemplateBodyVisitor,
66
getLocaleMessages,
77
getStaticLiteralValue,
8-
isStaticLiteral
8+
isStaticLiteral,
9+
compositingVisitors
910
} from '../utils/index'
1011
import type { AST as VAST } from 'vue-eslint-parser'
1112
import type { RuleContext, RuleListener } from '../types'
1213
import { createRule } from '../utils/rule'
1314

1415
function create(context: RuleContext): RuleListener {
15-
return defineTemplateBodyVisitor(
16-
context,
17-
{
16+
return compositingVisitors(
17+
defineTemplateBodyVisitor(context, {
1818
"VAttribute[directive=true][key.name='t']"(node: VAST.VDirective) {
1919
checkDirective(context, node)
2020
},
@@ -33,7 +33,7 @@ function create(context: RuleContext): RuleListener {
3333
CallExpression(node: VAST.ESLintCallExpression) {
3434
checkCallExpression(context, node)
3535
}
36-
},
36+
}),
3737
{
3838
CallExpression(node: VAST.ESLintCallExpression) {
3939
checkCallExpression(context, node)

lib/utils/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ export function skipTSAsExpression<T extends VAST.Node>(node: T): T {
535535
return node
536536
}
537537

538-
function compositingVisitors(
538+
export function compositingVisitors(
539539
visitor: RuleListener,
540540
...visitors: RuleListener[]
541541
) {

tests/lib/rules/no-missing-keys.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ tester.run('no-missing-keys', rule as never, {
218218
]
219219
),
220220

221-
invalid: buildTestsForLocales(
221+
invalid: buildTestsForLocales<RuleTester.InvalidTestCase>(
222222
[
223223
{
224224
// basic
@@ -275,6 +275,13 @@ tester.run('no-missing-keys', rule as never, {
275275
errors: [
276276
`'messages.missing' does not exist in localization message resources`
277277
]
278+
},
279+
{
280+
parser: require.resolve('espree'),
281+
code: `$t('messages.missing')`,
282+
errors: [
283+
`'messages.missing' does not exist in localization message resources`
284+
]
278285
}
279286
],
280287
[

0 commit comments

Comments
 (0)