Skip to content

Commit

Permalink
Only add new import if needed ant keep the old one (#105)
Browse files Browse the repository at this point in the history
* Only add new import if needed ant keep the old one

* Update test case
  • Loading branch information
Minhir authored Jun 16, 2022
1 parent 4008b66 commit c338bb1
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 23 deletions.
20 changes: 10 additions & 10 deletions rules/no-forward/no-forward.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ forward({ from: eventOne, to: eventTwo });
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: eventOne, target: eventTwo });
`,
},
Expand All @@ -56,7 +56,7 @@ forward({ from: eventOne.prepend((v) => v.length), to: eventTwo });
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: eventOne.prepend((v) => v.length), target: eventTwo });
`,
},
Expand All @@ -77,7 +77,7 @@ forward({ from: eventOne.map((v) => v.length), to: eventTwo });
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: eventOne, fn: (v) => v.length, target: eventTwo });
`,
},
Expand All @@ -98,7 +98,7 @@ forward({ from: eventOne, to: eventTwo.prepend((v) => v.length) });
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: eventOne, fn: (v) => v.length, target: eventTwo });
`,
},
Expand All @@ -119,7 +119,7 @@ forward({ from: eventOne, to: serviceOne.featureOne.eventTwo.prepend((v) => v.le
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: eventOne, fn: (v) => v.length, target: serviceOne.featureOne.eventTwo });
`,
},
Expand All @@ -140,7 +140,7 @@ forward({ from: serviceOne.featureOne.eventOne.map((v) => v.length), to: eventTw
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: serviceOne.featureOne.eventOne, fn: (v) => v.length, target: eventTwo });
`,
},
Expand All @@ -161,7 +161,7 @@ forward({ from: merge(eventOne, eventOneOne), to: eventTwo });
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: merge(eventOne, eventOneOne), target: eventTwo });
`,
},
Expand All @@ -171,7 +171,7 @@ sample({ clock: merge(eventOne, eventOneOne), target: eventTwo });
},
{
code: `
import { forward } from 'effector';
import { sample, forward } from 'effector';
forward({ from: eventOne, to: [eventTwo, eventTwoTwo] });
`,
errors: [
Expand All @@ -182,7 +182,7 @@ forward({ from: eventOne, to: [eventTwo, eventTwoTwo] });
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { sample, forward } from 'effector';
sample({ clock: eventOne, target: [eventTwo, eventTwoTwo] });
`,
},
Expand All @@ -203,7 +203,7 @@ forward({ from: eventOne.map((v) => v.length), to: eventTwo.prepend(v => v.toStr
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: eventOne.map((v) => v.length), target: eventTwo.prepend(v => v.toString()) });
`,
},
Expand Down
16 changes: 8 additions & 8 deletions rules/no-guard/no-guard.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ guard({ clock: eventOne, target: eventTwo, filter: Boolean });
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { guard, sample } from 'effector';
sample({ clock: eventOne, filter: Boolean, target: eventTwo });
`,
},
Expand All @@ -60,7 +60,7 @@ guard({ clock: eventOne, target: eventTwo.prepend((v) => v.length), filter: (v)
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { guard, sample } from 'effector';
sample({ clock: eventOne, filter: (v) => v.length > 0, fn: (v) => v.length, target: eventTwo });
`,
},
Expand All @@ -81,7 +81,7 @@ guard({ clock: eventOne, target: serviceOne.featureOne.eventTwo.prepend((v) => v
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { guard, sample } from 'effector';
sample({ clock: eventOne, filter: $store, fn: (v) => v.length, target: serviceOne.featureOne.eventTwo });
`,
},
Expand All @@ -102,7 +102,7 @@ guard({ source: $someStore, clock: merge(eventOne, eventOneOne), target: eventTw
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { guard, sample } from 'effector';
sample({ clock: merge(eventOne, eventOneOne), source: $someStore, filter: Boolean, target: eventTwo });
`,
},
Expand All @@ -112,7 +112,7 @@ sample({ clock: merge(eventOne, eventOneOne), source: $someStore, filter: Boolea
},
{
code: `
import { guard } from 'effector';
import { sample, guard } from 'effector';
guard({ clock: fFx.failData, filter: isAborted });
`,
errors: [
Expand All @@ -123,7 +123,7 @@ guard({ clock: fFx.failData, filter: isAborted });
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { sample, guard } from 'effector';
sample({ clock: fFx.failData, filter: isAborted });
`,
},
Expand All @@ -133,7 +133,7 @@ sample({ clock: fFx.failData, filter: isAborted });
},
{
code: `
import { guard } from 'effector';
import SmthDefault, { guard, forward } from 'effector';
guard(fFx.failData, { filter: isAborted });
`,
errors: [
Expand All @@ -144,7 +144,7 @@ guard(fFx.failData, { filter: isAborted });
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import SmthDefault, { guard, sample, forward } from 'effector';
sample({ clock: fFx.failData, filter: isAborted });
`,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ forward({ from: eventOne.map((v) => v.length), to: eventTwo });
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: eventOne, fn: (v) => v.length, target: eventTwo });
`,
},
Expand All @@ -62,7 +62,7 @@ forward({ from: eventOne, to: eventTwo.prepend((v) => v.length) });
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: eventOne, fn: (v) => v.length, target: eventTwo });
`,
},
Expand All @@ -84,7 +84,7 @@ forward({ from: eventOne, to: serviceOne.featureOne.eventTwo.prepend((v) => v.le
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: eventOne, fn: (v) => v.length, target: serviceOne.featureOne.eventTwo });
`,
},
Expand All @@ -106,7 +106,7 @@ forward({ from: serviceOne.featureOne.eventOne.map((v) => v.length), to: eventTw
{
messageId: "replaceWithSample",
output: `
import { sample } from 'effector';
import { forward, sample } from 'effector';
sample({ clock: serviceOne.featureOne.eventOne, fn: (v) => v.length, target: eventTwo });
`,
},
Expand Down
4 changes: 4 additions & 0 deletions utils/extract-imported-from.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
function extractImportedFrom({ importMap, nodeMap, node, packageName }) {
if (node.source.value === packageName) {
for (const s of node.specifiers) {
if (s.type === "ImportDefaultSpecifier") {
continue;
}

importMap.set(s.imported.name, s.local.name);
nodeMap?.set(s.imported.name, s);
}
Expand Down
6 changes: 5 additions & 1 deletion utils/replace-by-sample.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,11 @@ function* replaceBySample(
})})`
);

yield fixer.replaceText(importNodes.get(methodName), "sample");
const importNode = importNodes.get(methodName);

if (!importNodes.has("sample")) {
yield fixer.insertTextAfter(importNode, ", sample");
}
}

module.exports = { replaceForwardBySample, replaceGuardBySample };

0 comments on commit c338bb1

Please sign in to comment.