refactor: Lint for no interpolation in regular string (#5060) (no-changelog)

*  Create rule `no-interpolation-in-regular-string`

* 👕 Enable rule

*  Run rule (no issues) and add exception

*  Simplify regex

To account for expressions and to make it less expensive
This commit is contained in:
Iván Ovejero
2022-12-29 14:24:19 +01:00
committed by GitHub
parent ba0fd8a310
commit 0b47f9ce4e
3 changed files with 33 additions and 0 deletions

View File

@@ -139,6 +139,36 @@ module.exports = {
};
},
},
'no-interpolation-in-regular-string': {
meta: {
type: 'problem',
docs: {
description:
'String interpolation `${...}` requires backticks, not single or double quotes.',
recommended: 'error',
},
messages: {
useBackticks: 'Use backticks to interpolate',
},
fixable: 'code',
},
create(context) {
return {
Literal(node) {
if (typeof node.value !== 'string') return;
if (/\$\{/.test(node.value)) {
context.report({
messageId: 'useBackticks',
node,
fix: (fixer) => fixer.replaceText(node, `\`${node.value}\``),
});
}
},
};
},
},
};
const isJsonParseCall = (node) =>