mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-23 11:44:06 -08:00
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:
parent
ba0fd8a310
commit
0b47f9ce4e
|
@ -341,6 +341,8 @@ const config = (module.exports = {
|
|||
|
||||
'n8n-local-rules/no-unneeded-backticks': 'error',
|
||||
|
||||
'n8n-local-rules/no-interpolation-in-regular-string': 'error',
|
||||
|
||||
// ******************************************************************
|
||||
// overrides to base ruleset
|
||||
// ******************************************************************
|
||||
|
|
|
@ -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) =>
|
||||
|
|
|
@ -6,6 +6,7 @@ import { completeFromList, snippetCompletion } from '@codemirror/autocomplete';
|
|||
*/
|
||||
export const jsSnippets = completeFromList([
|
||||
...snippets.filter((snippet) => snippet.label !== 'class'),
|
||||
// eslint-disable-next-line n8n-local-rules/no-interpolation-in-regular-string
|
||||
snippetCompletion('console.log(${arg})', { label: 'console.log()' }),
|
||||
snippetCompletion('DateTime', { label: 'DateTime' }),
|
||||
snippetCompletion('Interval', { label: 'Interval' }),
|
||||
|
|
Loading…
Reference in a new issue