From ff2f4aadddf0024386ea95a02141ca73e13f4fda Mon Sep 17 00:00:00 2001 From: KazariEX <1364035137@qq.com> Date: Mon, 2 Sep 2024 12:07:26 +0800 Subject: [PATCH 1/5] feat(no-unused-refs): support template ref api --- lib/rules/no-unused-refs.js | 20 ++++++++++++++++++++ tests/lib/rules/no-unused-refs.js | 14 ++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/lib/rules/no-unused-refs.js b/lib/rules/no-unused-refs.js index 9033d9c2e..55e613111 100644 --- a/lib/rules/no-unused-refs.js +++ b/lib/rules/no-unused-refs.js @@ -233,6 +233,26 @@ module.exports = { refsNode = id.parent } extractUsedForPattern(refsNode) + }, + CallExpression(exp) { + if ( + exp.callee.name !== 'useTemplateRef' && + exp.callee.name !== 'templateRef' + ) { + return + } + const arg0 = exp.arguments[0] + if (!arg0) { + return + } + if (arg0.type === 'Literal') { + usedRefs.add(arg0.value) + } else if ( + arg0.type === 'TemplateLiteral' && + arg0.quasis.length === 1 + ) { + usedRefs.add(arg0.quasis[0].value.cooked) + } } } ) diff --git a/tests/lib/rules/no-unused-refs.js b/tests/lib/rules/no-unused-refs.js index 7e092ee87..2179fd7d2 100644 --- a/tests/lib/rules/no-unused-refs.js +++ b/tests/lib/rules/no-unused-refs.js @@ -315,6 +315,20 @@ tester.run('no-unused-refs', rule, { const x = ref(null) ` + }, + { + filename: 'test.vue', + code: ` + + + ` } ], From 221d2a9be2ee002813fbb27a0faae1ae0710c026 Mon Sep 17 00:00:00 2001 From: KazariEX <1364035137@qq.com> Date: Mon, 2 Sep 2024 18:23:00 +0800 Subject: [PATCH 2/5] fix: remove templateRef --- lib/rules/no-unused-refs.js | 5 +---- tests/lib/rules/no-unused-refs.js | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/rules/no-unused-refs.js b/lib/rules/no-unused-refs.js index 55e613111..e1b7607db 100644 --- a/lib/rules/no-unused-refs.js +++ b/lib/rules/no-unused-refs.js @@ -235,10 +235,7 @@ module.exports = { extractUsedForPattern(refsNode) }, CallExpression(exp) { - if ( - exp.callee.name !== 'useTemplateRef' && - exp.callee.name !== 'templateRef' - ) { + if (exp.callee.name !== 'useTemplateRef') { return } const arg0 = exp.arguments[0] diff --git a/tests/lib/rules/no-unused-refs.js b/tests/lib/rules/no-unused-refs.js index 2179fd7d2..a4407a608 100644 --- a/tests/lib/rules/no-unused-refs.js +++ b/tests/lib/rules/no-unused-refs.js @@ -326,7 +326,7 @@ tester.run('no-unused-refs', rule, { ` } From 973031548b291c0d9bfe4b02411db53991c998c9 Mon Sep 17 00:00:00 2001 From: KazariEX <1364035137@qq.com> Date: Tue, 3 Sep 2024 12:01:05 +0800 Subject: [PATCH 3/5] refactor: use `getStringLiteralValue` --- lib/rules/no-unused-refs.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/rules/no-unused-refs.js b/lib/rules/no-unused-refs.js index e1b7607db..7722d74d9 100644 --- a/lib/rules/no-unused-refs.js +++ b/lib/rules/no-unused-refs.js @@ -242,13 +242,9 @@ module.exports = { if (!arg0) { return } - if (arg0.type === 'Literal') { - usedRefs.add(arg0.value) - } else if ( - arg0.type === 'TemplateLiteral' && - arg0.quasis.length === 1 - ) { - usedRefs.add(arg0.quasis[0].value.cooked) + const name = utils.getStringLiteralValue(arg0) + if (name !== null) { + usedRefs.add(name) } } } From c4dda51657b0bce76d503c1523604cfc8a782356 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=B1=E5=90=B9=E8=89=B2=E5=BE=A1=E5=AE=88?= <85992002+KazariEX@users.noreply.github.com> Date: Tue, 3 Sep 2024 21:34:18 +0800 Subject: [PATCH 4/5] Update lib/rules/no-unused-refs.js Co-authored-by: Flo Edelmann --- lib/rules/no-unused-refs.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/lib/rules/no-unused-refs.js b/lib/rules/no-unused-refs.js index 7722d74d9..76e208132 100644 --- a/lib/rules/no-unused-refs.js +++ b/lib/rules/no-unused-refs.js @@ -234,15 +234,12 @@ module.exports = { } extractUsedForPattern(refsNode) }, - CallExpression(exp) { - if (exp.callee.name !== 'useTemplateRef') { + CallExpression(callExpression) { + const firstArgument = callExpression.arguments[0] + if (callExpression.callee.name !== 'useTemplateRef' || !firstArgument) { return } - const arg0 = exp.arguments[0] - if (!arg0) { - return - } - const name = utils.getStringLiteralValue(arg0) + const name = utils.getStringLiteralValue(firstArgument) if (name !== null) { usedRefs.add(name) } From bbde7c8d8fc3fb614bcd719ef70762f9fc20ce8f Mon Sep 17 00:00:00 2001 From: Flo Edelmann Date: Tue, 3 Sep 2024 15:41:17 +0200 Subject: [PATCH 5/5] Fix lint issue --- lib/rules/no-unused-refs.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/rules/no-unused-refs.js b/lib/rules/no-unused-refs.js index 76e208132..79d82a39d 100644 --- a/lib/rules/no-unused-refs.js +++ b/lib/rules/no-unused-refs.js @@ -236,7 +236,10 @@ module.exports = { }, CallExpression(callExpression) { const firstArgument = callExpression.arguments[0] - if (callExpression.callee.name !== 'useTemplateRef' || !firstArgument) { + if ( + callExpression.callee.name !== 'useTemplateRef' || + !firstArgument + ) { return } const name = utils.getStringLiteralValue(firstArgument)