From 4a9c8d265d0e9b393ab94eb699ba756ffe68b6ee Mon Sep 17 00:00:00 2001 From: ItMaga Date: Sat, 20 May 2023 01:39:00 +0300 Subject: [PATCH 1/2] Extend `vue/no-dupe-keys` to support ` + `, + parser: require.resolve('vue-eslint-parser') + }, + { + filename: 'test.vue', + code: ` + + `, + parser: require.resolve('vue-eslint-parser'), + parserOptions: { parser: require.resolve('@typescript-eslint/parser') } } ], @@ -861,6 +887,85 @@ ruleTester.run('no-dupe-keys', rule, { line: 7 } ] + }, + { + filename: 'test.vue', + code: ` + + `, + parser: require.resolve('vue-eslint-parser'), + errors: [ + { + message: "Duplicated key 'foo'.", + line: 6 + } + ] + }, + { + filename: 'test.vue', + code: ` + + `, + parser: require.resolve('vue-eslint-parser'), + errors: [ + { + message: "Duplicated key 'baz'.", + line: 4 + }, + { + message: "Duplicated key 'foo'.", + line: 12 + }, + { + message: "Duplicated key 'bar'.", + line: 15 + } + ] + }, + { + filename: 'test.vue', + code: ` + + `, + parser: require.resolve('vue-eslint-parser'), + parserOptions: { parser: require.resolve('@typescript-eslint/parser') }, + errors: [ + { + message: "Duplicated key 'foo'.", + line: 8 + }, + { + message: "Duplicated key 'bar'.", + line: 9 + } + ] } ] }) From 32f9d5cb26c584e72ab7d1d4a22c9f6011e0d6e7 Mon Sep 17 00:00:00 2001 From: ItMaga Date: Sat, 20 May 2023 02:36:41 +0300 Subject: [PATCH 2/2] ignore global scope variables --- lib/rules/no-dupe-keys.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rules/no-dupe-keys.js b/lib/rules/no-dupe-keys.js index 94ec11c8b..f959f4b66 100644 --- a/lib/rules/no-dupe-keys.js +++ b/lib/rules/no-dupe-keys.js @@ -67,7 +67,7 @@ module.exports = { if (!prop.propName) continue const variable = findVariable(context.getScope(), prop.propName) - if (!variable) continue + if (!variable || variable.defs.length === 0) continue context.report({ node: variable.defs[0].node,