Skip to content

Commit 3c87468

Browse files
feat(prefer-import-root-operators): separate message when no fixer provided
Warn about possible renames or partition being gone.
1 parent a2ec83a commit 3c87468

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

src/rules/prefer-import-root-operators.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@ export const preferImportRootOperatorsRule = ruleCreator({
2626
fixable: 'code',
2727
hasSuggestions: true,
2828
messages: {
29-
forbidden: 'RxJS imports from `rxjs/operators` are forbidden.',
30-
suggest: 'Import from `rxjs` instead.',
29+
forbidden: 'RxJS imports from `rxjs/operators` are forbidden; import from `rxjs` instead.',
30+
forbiddenWithoutFix: 'RxJS imports from `rxjs/operators` are forbidden; import from `rxjs` instead. Note some operators may have been renamed or deprecated.',
31+
suggest: 'Replace with import from `rxjs`.',
3132
},
3233
schema: [],
33-
type: 'problem',
34+
type: 'suggestion',
3435
},
3536
name: 'prefer-import-root-operators',
3637
create: (context) => {
@@ -117,15 +118,15 @@ export const preferImportRootOperatorsRule = ruleCreator({
117118
const replacement = getSourceReplacement(source.raw);
118119
if (!replacement || hasDeprecatedOperators(specifiers)) {
119120
context.report({
120-
messageId: 'forbidden',
121+
messageId: 'forbiddenWithoutFix',
121122
node: source,
122123
});
123124
return;
124125
}
125126

126127
if (!specifiers) {
127128
context.report({
128-
messageId: 'forbidden',
129+
messageId: 'forbiddenWithoutFix',
129130
node: source,
130131
suggest: [{ messageId: 'suggest', fix: (fixer) => fixer.replaceText(source, replacement) }],
131132
});

tests/rules/prefer-import-root-operators.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,14 @@ ruleTester({ types: false }).run('prefer-import-root-operators', preferImportRoo
8989
stripIndent`
9090
// import declaration named, deprecated operator
9191
import { partition } from "rxjs/operators";
92-
~~~~~~~~~~~~~~~~ [forbidden]
92+
~~~~~~~~~~~~~~~~ [forbiddenWithoutFix]
9393
`,
9494
),
9595
fromFixture(
9696
stripIndent`
9797
// import declaration namespace
9898
import * as RxOperators from "rxjs/operators";
99-
~~~~~~~~~~~~~~~~ [forbidden suggest]
99+
~~~~~~~~~~~~~~~~ [forbiddenWithoutFix suggest]
100100
`,
101101
{
102102
suggestions: [
@@ -114,7 +114,7 @@ ruleTester({ types: false }).run('prefer-import-root-operators', preferImportRoo
114114
stripIndent`
115115
// import declaration default
116116
import RxOperators, { map } from "rxjs/operators";
117-
~~~~~~~~~~~~~~~~ [forbidden suggest]
117+
~~~~~~~~~~~~~~~~ [forbiddenWithoutFix suggest]
118118
`,
119119
{
120120
suggestions: [
@@ -132,7 +132,7 @@ ruleTester({ types: false }).run('prefer-import-root-operators', preferImportRoo
132132
stripIndent`
133133
// import expression
134134
const { concat, merge: m, map } = await import("rxjs/operators");
135-
~~~~~~~~~~~~~~~~ [forbidden suggest]
135+
~~~~~~~~~~~~~~~~ [forbiddenWithoutFix suggest]
136136
`,
137137
{
138138
suggestions: [
@@ -150,7 +150,7 @@ ruleTester({ types: false }).run('prefer-import-root-operators', preferImportRoo
150150
stripIndent`
151151
// import expression, separated import
152152
const opPromise = import("rxjs/operators");
153-
~~~~~~~~~~~~~~~~ [forbidden suggest]
153+
~~~~~~~~~~~~~~~~ [forbiddenWithoutFix suggest]
154154
const { concat } = await opPromise;
155155
`,
156156
{
@@ -170,7 +170,7 @@ ruleTester({ types: false }).run('prefer-import-root-operators', preferImportRoo
170170
stripIndent`
171171
// import expression, deprecated operator
172172
const { concat, partition } = await import("rxjs/operators");
173-
~~~~~~~~~~~~~~~~ [forbidden suggest]
173+
~~~~~~~~~~~~~~~~ [forbiddenWithoutFix suggest]
174174
`,
175175
{
176176
suggestions: [
@@ -210,14 +210,14 @@ ruleTester({ types: false }).run('prefer-import-root-operators', preferImportRoo
210210
stripIndent`
211211
// export named, deprecated operator
212212
export { concat, partition } from "rxjs/operators";
213-
~~~~~~~~~~~~~~~~ [forbidden]
213+
~~~~~~~~~~~~~~~~ [forbiddenWithoutFix]
214214
`,
215215
),
216216
fromFixture(
217217
stripIndent`
218218
// export all
219219
export * from "rxjs/operators";
220-
~~~~~~~~~~~~~~~~ [forbidden suggest]
220+
~~~~~~~~~~~~~~~~ [forbiddenWithoutFix suggest]
221221
`,
222222
{
223223
suggestions: [

0 commit comments

Comments
 (0)