|
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