Skip to content

Commit 85fe773

Browse files
authored
fix: handle template expression in no-invalid-role (#335)
* fix: handle template expression in no-invalid-role * Update no-invalid-role.js
1 parent 09bafbb commit 85fe773

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

packages/eslint-plugin/lib/rules/no-invalid-role.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
* @typedef { import("../types").RuleModule<[]> } RuleModule
33
*/
44

5+
const { NodeTypes } = require("es-html-parser");
56
const { RULE_CATEGORY } = require("../constants");
67
const { findAttr } = require("./utils/node");
78
const { createVisitors } = require("./utils/visitors");
@@ -252,6 +253,17 @@ module.exports = {
252253
if (!role) {
253254
return;
254255
}
256+
/**
257+
* Allow template expression.
258+
* ex: html`<div role=${role}></div>`
259+
*/
260+
if (
261+
role.value &&
262+
role.value.parts.some((part) => part.type === NodeTypes.Template)
263+
) {
264+
return;
265+
}
266+
255267
const roleValue = (
256268
(role.value && role.value.value) ||
257269
""

packages/eslint-plugin/tests/rules/no-invalid-role.test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ templateRuleTester.run("[template] no-invalid-role", rule, {
4949
{
5050
code: 'html`<div role="grid"></div>`',
5151
},
52+
{
53+
code: `
54+
const role = "grid";
55+
html\`<div role="\${role}"></div>\``,
56+
},
5257
],
5358
invalid: [
5459
{

0 commit comments

Comments
 (0)