|
1 | 1 | import type { TSESTree } from '@typescript-eslint/types'; |
2 | 2 | import type { Variable } from '@typescript-eslint/scope-manager'; |
3 | 3 | import { createRule } from '../utils/index.js'; |
4 | | -import type { RuleContext } from '../types.js'; |
| 4 | +import type { RuleContext, RuleFixer } from '../types.js'; |
5 | 5 | import { extractStoreReferences } from './reference-helpers/svelte-store.js'; |
6 | 6 | import { getScope } from '../utils/ast-utils.js'; |
7 | 7 |
|
@@ -31,6 +31,18 @@ function findVariableForName( |
31 | 31 | return { hasConflict, variable }; |
32 | 32 | } |
33 | 33 |
|
| 34 | +function createFixer(node: TSESTree.Node, variable: Variable | null, name: string) { |
| 35 | + return function* fix(fixer: RuleFixer) { |
| 36 | + yield fixer.replaceText(node, name); |
| 37 | + |
| 38 | + if (variable) { |
| 39 | + for (const ref of variable.references) { |
| 40 | + yield fixer.replaceText(ref.identifier, name); |
| 41 | + } |
| 42 | + } |
| 43 | + }; |
| 44 | +} |
| 45 | + |
34 | 46 | export default createRule('derived-has-same-inputs-outputs', { |
35 | 47 | meta: { |
36 | 48 | docs: { |
@@ -97,15 +109,7 @@ export default createRule('derived-has-same-inputs-outputs', { |
97 | 109 | { |
98 | 110 | messageId: 'renameParam', |
99 | 111 | data: { oldName: fnParam.name, newName: expectedName }, |
100 | | - *fix(fixer) { |
101 | | - yield fixer.replaceText(fnParam, expectedName); |
102 | | - |
103 | | - if (variable) { |
104 | | - for (const ref of variable.references) { |
105 | | - yield fixer.replaceText(ref.identifier, expectedName); |
106 | | - } |
107 | | - } |
108 | | - } |
| 112 | + fix: createFixer(fnParam, variable, expectedName) |
109 | 113 | } |
110 | 114 | ] |
111 | 115 | }); |
@@ -149,15 +153,7 @@ export default createRule('derived-has-same-inputs-outputs', { |
149 | 153 | { |
150 | 154 | messageId: 'renameParam', |
151 | 155 | data: { oldName: element.name, newName: expectedName }, |
152 | | - *fix(fixer) { |
153 | | - yield fixer.replaceText(element, expectedName); |
154 | | - |
155 | | - if (variable) { |
156 | | - for (const ref of variable.references) { |
157 | | - yield fixer.replaceText(ref.identifier, expectedName); |
158 | | - } |
159 | | - } |
160 | | - } |
| 156 | + fix: createFixer(element, variable, expectedName) |
161 | 157 | } |
162 | 158 | ] |
163 | 159 | }); |
|
0 commit comments