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)