@effect/language-service 0.0.11 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/_mjs/index.mjs +21 -61
  2. package/_mjs/index.mjs.map +1 -1
  3. package/_mjs/refactors/addPipe.mjs +12 -18
  4. package/_mjs/refactors/addPipe.mjs.map +1 -1
  5. package/_mjs/refactors/asyncAwaitToGen.mjs +12 -18
  6. package/_mjs/refactors/asyncAwaitToGen.mjs.map +1 -1
  7. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs +17 -23
  8. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs.map +1 -1
  9. package/_mjs/refactors/definition.mjs.map +1 -1
  10. package/_mjs/refactors/functionToArrow.mjs +31 -36
  11. package/_mjs/refactors/functionToArrow.mjs.map +1 -1
  12. package/_mjs/refactors/index.mjs +1 -5
  13. package/_mjs/refactors/index.mjs.map +1 -1
  14. package/_mjs/refactors/removePipe.mjs +11 -17
  15. package/_mjs/refactors/removePipe.mjs.map +1 -1
  16. package/_mjs/refactors/toggleReturnTypeAnnotation.mjs +10 -15
  17. package/_mjs/refactors/toggleReturnTypeAnnotation.mjs.map +1 -1
  18. package/_mjs/refactors/toggleTypeAnnotation.mjs +25 -31
  19. package/_mjs/refactors/toggleTypeAnnotation.mjs.map +1 -1
  20. package/_mjs/refactors/wrapWithPipe.mjs +5 -8
  21. package/_mjs/refactors/wrapWithPipe.mjs.map +1 -1
  22. package/_mjs/{utils.mjs → utils/AST.mjs} +81 -39
  23. package/_mjs/utils/AST.mjs.map +1 -0
  24. package/_mjs/utils/Function.mjs +31 -0
  25. package/_mjs/utils/Function.mjs.map +1 -0
  26. package/_mjs/utils/Option.mjs +14 -0
  27. package/_mjs/utils/Option.mjs.map +1 -0
  28. package/_mjs/utils/ReadonlyArray.mjs +12 -0
  29. package/_mjs/utils/ReadonlyArray.mjs.map +1 -0
  30. package/index.js +24 -64
  31. package/index.js.map +1 -1
  32. package/package.json +1 -3
  33. package/refactors/addPipe.d.ts.map +1 -1
  34. package/refactors/addPipe.js +12 -18
  35. package/refactors/addPipe.js.map +1 -1
  36. package/refactors/asyncAwaitToGen.d.ts.map +1 -1
  37. package/refactors/asyncAwaitToGen.js +12 -18
  38. package/refactors/asyncAwaitToGen.js.map +1 -1
  39. package/refactors/asyncAwaitToGenTryPromise.d.ts.map +1 -1
  40. package/refactors/asyncAwaitToGenTryPromise.js +17 -23
  41. package/refactors/asyncAwaitToGenTryPromise.js.map +1 -1
  42. package/refactors/definition.d.ts +7 -6
  43. package/refactors/definition.d.ts.map +1 -1
  44. package/refactors/definition.js.map +1 -1
  45. package/refactors/functionToArrow.d.ts.map +1 -1
  46. package/refactors/functionToArrow.js +31 -36
  47. package/refactors/functionToArrow.js.map +1 -1
  48. package/refactors/index.d.ts +0 -2
  49. package/refactors/index.d.ts.map +1 -1
  50. package/refactors/index.js +1 -5
  51. package/refactors/index.js.map +1 -1
  52. package/refactors/removePipe.d.ts.map +1 -1
  53. package/refactors/removePipe.js +11 -17
  54. package/refactors/removePipe.js.map +1 -1
  55. package/refactors/toggleReturnTypeAnnotation.d.ts.map +1 -1
  56. package/refactors/toggleReturnTypeAnnotation.js +10 -15
  57. package/refactors/toggleReturnTypeAnnotation.js.map +1 -1
  58. package/refactors/toggleTypeAnnotation.d.ts.map +1 -1
  59. package/refactors/toggleTypeAnnotation.js +25 -31
  60. package/refactors/toggleTypeAnnotation.js.map +1 -1
  61. package/refactors/wrapWithPipe.d.ts.map +1 -1
  62. package/refactors/wrapWithPipe.js +5 -8
  63. package/refactors/wrapWithPipe.js.map +1 -1
  64. package/{ast.d.ts → utils/AST.d.ts} +14 -10
  65. package/utils/AST.d.ts.map +1 -0
  66. package/{utils.js → utils/AST.js} +91 -42
  67. package/utils/AST.js.map +1 -0
  68. package/utils/Function.d.ts +21 -0
  69. package/utils/Function.d.ts.map +1 -0
  70. package/utils/Function.js +37 -0
  71. package/utils/Function.js.map +1 -0
  72. package/utils/Option.d.ts +17 -0
  73. package/utils/Option.d.ts.map +1 -0
  74. package/utils/Option.js +28 -0
  75. package/utils/Option.js.map +1 -0
  76. package/utils/ReadonlyArray.d.ts +17 -0
  77. package/utils/ReadonlyArray.d.ts.map +1 -0
  78. package/utils/ReadonlyArray.js +30 -0
  79. package/utils/ReadonlyArray.js.map +1 -0
  80. package/_mjs/ast.mjs +0 -80
  81. package/_mjs/ast.mjs.map +0 -1
  82. package/_mjs/config.mjs +0 -24
  83. package/_mjs/config.mjs.map +0 -1
  84. package/_mjs/diagnostics/definition.mjs +0 -4
  85. package/_mjs/diagnostics/definition.mjs.map +0 -1
  86. package/_mjs/diagnostics/ensureGetCallTrace.mjs +0 -51
  87. package/_mjs/diagnostics/ensureGetCallTrace.mjs.map +0 -1
  88. package/_mjs/diagnostics/index.mjs +0 -7
  89. package/_mjs/diagnostics/index.mjs.map +0 -1
  90. package/_mjs/diagnostics/noSyncWithConstant.mjs +0 -40
  91. package/_mjs/diagnostics/noSyncWithConstant.mjs.map +0 -1
  92. package/_mjs/eslint-rules/index.mjs +0 -8
  93. package/_mjs/eslint-rules/index.mjs.map +0 -1
  94. package/_mjs/eslint-rules/no-curry-arrow.mjs +0 -33
  95. package/_mjs/eslint-rules/no-curry-arrow.mjs.map +0 -1
  96. package/_mjs/eslint-rules/utils.mjs +0 -8
  97. package/_mjs/eslint-rules/utils.mjs.map +0 -1
  98. package/_mjs/refactors/noSyncWithConstant.mjs +0 -34
  99. package/_mjs/refactors/noSyncWithConstant.mjs.map +0 -1
  100. package/_mjs/refactors/removeCurryArrow.mjs +0 -24
  101. package/_mjs/refactors/removeCurryArrow.mjs.map +0 -1
  102. package/_mjs/utils.mjs.map +0 -1
  103. package/ast.d.ts.map +0 -1
  104. package/ast.js +0 -100
  105. package/ast.js.map +0 -1
  106. package/config.d.ts +0 -10
  107. package/config.d.ts.map +0 -1
  108. package/config.js +0 -31
  109. package/config.js.map +0 -1
  110. package/diagnostics/definition.d.ts +0 -15
  111. package/diagnostics/definition.d.ts.map +0 -1
  112. package/diagnostics/definition.js +0 -10
  113. package/diagnostics/definition.js.map +0 -1
  114. package/diagnostics/ensureGetCallTrace.d.ts +0 -3
  115. package/diagnostics/ensureGetCallTrace.d.ts.map +0 -1
  116. package/diagnostics/ensureGetCallTrace.js +0 -60
  117. package/diagnostics/ensureGetCallTrace.js.map +0 -1
  118. package/diagnostics/index.d.ts +0 -6
  119. package/diagnostics/index.d.ts.map +0 -1
  120. package/diagnostics/index.js +0 -15
  121. package/diagnostics/index.js.map +0 -1
  122. package/diagnostics/noSyncWithConstant.d.ts +0 -10
  123. package/diagnostics/noSyncWithConstant.d.ts.map +0 -1
  124. package/diagnostics/noSyncWithConstant.js +0 -52
  125. package/diagnostics/noSyncWithConstant.js.map +0 -1
  126. package/eslint-rules/index.d.ts +0 -9
  127. package/eslint-rules/index.d.ts.map +0 -1
  128. package/eslint-rules/index.js +0 -16
  129. package/eslint-rules/index.js.map +0 -1
  130. package/eslint-rules/no-curry-arrow.d.ts +0 -5
  131. package/eslint-rules/no-curry-arrow.d.ts.map +0 -1
  132. package/eslint-rules/no-curry-arrow.js +0 -42
  133. package/eslint-rules/no-curry-arrow.js.map +0 -1
  134. package/eslint-rules/utils.d.ts +0 -5
  135. package/eslint-rules/utils.d.ts.map +0 -1
  136. package/eslint-rules/utils.js +0 -16
  137. package/eslint-rules/utils.js.map +0 -1
  138. package/refactors/noSyncWithConstant.d.ts +0 -3
  139. package/refactors/noSyncWithConstant.d.ts.map +0 -1
  140. package/refactors/noSyncWithConstant.js +0 -43
  141. package/refactors/noSyncWithConstant.js.map +0 -1
  142. package/refactors/removeCurryArrow.d.ts +0 -3
  143. package/refactors/removeCurryArrow.d.ts.map +0 -1
  144. package/refactors/removeCurryArrow.js +0 -33
  145. package/refactors/removeCurryArrow.js.map +0 -1
  146. package/utils.d.ts +0 -17
  147. package/utils.d.ts.map +0 -1
  148. package/utils.js.map +0 -1
package/_mjs/index.mjs CHANGED
@@ -1,11 +1,7 @@
1
- import * as T from "@effect/io/Effect";
2
- import * as AST from "@effect/language-service/ast";
3
- import { parseLanguageServicePluginConfig } from "@effect/language-service/config";
4
- import diagnostics from "@effect/language-service/diagnostics/index";
5
1
  import refactors from "@effect/language-service/refactors/index";
6
- import * as Ch from "@fp-ts/data/Chunk";
7
- import { identity, pipe } from "@fp-ts/data/Function";
8
- import * as O from "@fp-ts/data/Option";
2
+ import * as AST from "@effect/language-service/utils/AST";
3
+ import { pipe } from "@effect/language-service/utils/Function";
4
+ import * as O from "@effect/language-service/utils/Option";
9
5
  // eslint-disable-next-line @typescript-eslint/consistent-type-imports
10
6
  function init(modules) {
11
7
  const ts = modules.typescript;
@@ -17,54 +13,20 @@ function init(modules) {
17
13
  // @ts-expect-error
18
14
  proxy[k] = (...args) => languageService[k].apply(languageService, args);
19
15
  }
20
- function applyConfiguredDiagnosticCategory(diagnostic) {
21
- const config = parseLanguageServicePluginConfig(info.config);
22
- const category = config.diagnostics[diagnostic.code] || diagnostic.category;
23
- return {
24
- ...diagnostic,
25
- category
26
- };
27
- }
28
- function toTsDiagnosticCategory(category) {
29
- return {
30
- none: ts.DiagnosticCategory.Suggestion,
31
- suggestion: ts.DiagnosticCategory.Suggestion,
32
- warning: ts.DiagnosticCategory.Warning,
33
- error: ts.DiagnosticCategory.Error
34
- }[category];
35
- }
36
- proxy.getSuggestionDiagnostics = (...args) => {
37
- const suggestionDiagnostics = languageService.getSuggestionDiagnostics(...args);
38
- const [fileName] = args;
39
- const program = languageService.getProgram();
40
- if (program) {
41
- const effectDiagnostics = pipe(AST.getSourceFile(fileName), T.flatMap(sourceFile => pipe(Object.values(diagnostics).map(applyConfiguredDiagnosticCategory).filter(_ => _.category !== "none"), T.forEachPar(diagnostic => pipe(diagnostic.apply(sourceFile), T.map(Ch.map(_ => ({
42
- file: sourceFile,
43
- start: _.node.pos,
44
- length: _.node.end - _.node.pos,
45
- messageText: _.messageText,
46
- category: toTsDiagnosticCategory(diagnostic.category),
47
- code: diagnostic.code,
48
- source: "effect"
49
- }))))))), T.map(Ch.flatten), T.map(e => Array.from(e)), T.provideService(AST.TypeScriptProgram)(program), T.provideService(AST.TypeScriptApi)(modules.typescript), T.unsafeRunSync);
50
- return suggestionDiagnostics.concat(effectDiagnostics);
51
- }
52
- return suggestionDiagnostics;
53
- };
54
16
  proxy.getApplicableRefactors = (...args) => {
55
17
  const applicableRefactors = languageService.getApplicableRefactors(...args);
56
18
  const [fileName, positionOrRange] = args;
57
19
  const program = languageService.getProgram();
58
20
  if (program) {
59
21
  const textRange = AST.toTextRange(positionOrRange);
60
- const effectRefactors = pipe(AST.getSourceFile(fileName), T.flatMap(sourceFile => pipe(Object.values(refactors).map(refactor => pipe(refactor.apply(sourceFile, textRange), T.map(O.map(_ => ({
22
+ const effectRefactors = pipe(AST.getSourceFile(program)(fileName), sourceFile => pipe(Object.values(refactors).map(refactor => pipe(refactor.apply(modules.typescript, program)(sourceFile, textRange), O.map(_ => ({
61
23
  name: refactor.name,
62
24
  description: refactor.description,
63
25
  actions: [{
64
26
  name: refactor.name,
65
27
  description: _.description
66
28
  }]
67
- }))))), T.collectAllWith(identity))), T.map(v => Array.from(v)), T.provideService(AST.TypeScriptProgram)(program), T.provideService(AST.TypeScriptApi)(modules.typescript), T.unsafeRunSync);
29
+ })))), _ => _.reduce((arr, maybeRefactor) => arr.concat(O.isSome(maybeRefactor) ? [maybeRefactor.value] : []), [])));
68
30
  info.project.projectService.logger.info("[@effect/language-service] possible refactors are " + JSON.stringify(effectRefactors));
69
31
  return applicableRefactors.concat(effectRefactors);
70
32
  }
@@ -75,26 +37,24 @@ function init(modules) {
75
37
  if (program) {
76
38
  for (const refactor of Object.values(refactors)) {
77
39
  if (refactor.name === refactorName) {
78
- return pipe(T.gen(function* ($) {
79
- const sourceFile = yield* $(AST.getSourceFile(fileName));
80
- const textRange = AST.toTextRange(positionOrRange);
81
- const possibleRefactor = yield* $(refactor.apply(sourceFile, textRange));
82
- if (O.isNone(possibleRefactor)) {
83
- info.project.projectService.logger.info("[@effect/language-service] requested refactor " + refactorName + " is not applicable");
84
- return {
85
- edits: []
86
- };
87
- }
88
- const formatContext = ts.formatting.getFormatContext(formatOptions, info.languageServiceHost);
89
- const edits = ts.textChanges.ChangeTracker.with({
90
- formatContext,
91
- host: info.languageServiceHost,
92
- preferences: preferences || {}
93
- }, changeTracker => pipe(possibleRefactor.value.apply, T.provideService(AST.ChangeTrackerApi)(changeTracker), T.provideService(AST.TypeScriptApi)(modules.typescript), T.provideService(AST.TypeScriptProgram)(program), T.unsafeRunSync));
40
+ const sourceFile = AST.getSourceFile(program)(fileName);
41
+ const textRange = AST.toTextRange(positionOrRange);
42
+ const possibleRefactor = refactor.apply(modules.typescript, program)(sourceFile, textRange);
43
+ if (O.isNone(possibleRefactor)) {
44
+ info.project.projectService.logger.info("[@effect/language-service] requested refactor " + refactorName + " is not applicable");
94
45
  return {
95
- edits
46
+ edits: []
96
47
  };
97
- }), T.provideService(AST.TypeScriptApi)(modules.typescript), T.provideService(AST.TypeScriptProgram)(program), T.unsafeRunSync);
48
+ }
49
+ const formatContext = ts.formatting.getFormatContext(formatOptions, info.languageServiceHost);
50
+ const edits = ts.textChanges.ChangeTracker.with({
51
+ formatContext,
52
+ host: info.languageServiceHost,
53
+ preferences: preferences || {}
54
+ }, changeTracker => possibleRefactor.value.apply(changeTracker));
55
+ return {
56
+ edits
57
+ };
98
58
  }
99
59
  }
100
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","mappings":"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","names":["T","AST","parseLanguageServicePluginConfig","diagnostics","refactors","Ch","identity","pipe","O","init","modules","ts","typescript","create","info","languageService","proxy","Object","k","keys","args","apply","applyConfiguredDiagnosticCategory","diagnostic","config","category","code","toTsDiagnosticCategory","none","DiagnosticCategory","Suggestion","suggestion","warning","Warning","error","Error","getSuggestionDiagnostics","suggestionDiagnostics","fileName","program","getProgram","effectDiagnostics","getSourceFile","flatMap","sourceFile","values","map","filter","_","forEachPar","file","start","node","pos","length","end","messageText","source","flatten","e","Array","from","provideService","TypeScriptProgram","TypeScriptApi","unsafeRunSync","concat","getApplicableRefactors","applicableRefactors","positionOrRange","textRange","toTextRange","effectRefactors","refactor","name","description","actions","collectAllWith","v","project","projectService","logger","JSON","stringify","getEditsForRefactor","formatOptions","refactorName","actionName","preferences","gen","$","possibleRefactor","isNone","edits","formatContext","formatting","getFormatContext","languageServiceHost","textChanges","ChangeTracker","with","host","changeTracker","value","ChangeTrackerApi","module","exports"],"sourceRoot":"","sources":["../../src/index.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"index.mjs","mappings":"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","names":["refactors","AST","pipe","O","init","modules","ts","typescript","create","info","languageService","proxy","Object","k","keys","args","apply","getApplicableRefactors","applicableRefactors","fileName","positionOrRange","program","getProgram","textRange","toTextRange","effectRefactors","getSourceFile","sourceFile","values","map","refactor","_","name","description","actions","reduce","arr","maybeRefactor","concat","isSome","value","project","projectService","logger","JSON","stringify","getEditsForRefactor","formatOptions","refactorName","actionName","preferences","possibleRefactor","isNone","edits","formatContext","formatting","getFormatContext","languageServiceHost","textChanges","ChangeTracker","with","host","changeTracker","module","exports"],"sourceRoot":"","sources":["../../src/index.ts"],"sourcesContent":[null]}
@@ -1,24 +1,18 @@
1
- import * as T from "@effect/io/Effect";
2
- import * as AST from "@effect/language-service/ast";
3
1
  import { createRefactor } from "@effect/language-service/refactors/definition";
4
- import { asPipeArguments, isPipeableCallExpression } from "@effect/language-service/utils";
5
- import * as Ch from "@fp-ts/data/Chunk";
6
- import { pipe } from "@fp-ts/data/Function";
7
- import * as O from "@fp-ts/data/Option";
2
+ import * as AST from "@effect/language-service/utils/AST";
3
+ import { pipe } from "@effect/language-service/utils/Function";
4
+ import * as O from "@effect/language-service/utils/Option";
5
+ import * as Ch from "@effect/language-service/utils/ReadonlyArray";
8
6
  export default /*#__PURE__*/createRefactor({
9
7
  name: "effect/addPipe",
10
8
  description: "Rewrite using pipe",
11
- apply: (sourceFile, textRange) => T.gen(function* ($) {
12
- const ts = yield* $(T.service(AST.TypeScriptApi));
13
- return pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.reverse, Ch.fromIterable, Ch.filter(AST.isNodeInRange(textRange)), Ch.filter(isPipeableCallExpression(ts)), Ch.head, O.map(node => ({
14
- description: `Rewrite ${AST.getHumanReadableName(sourceFile, node.expression)} to pipe`,
15
- apply: T.gen(function* ($) {
16
- const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
17
- const args = asPipeArguments(ts)(node);
18
- const newNode = ts.factory.createCallExpression(ts.factory.createIdentifier("pipe"), undefined, Array.from(args));
19
- changeTracker.replaceNode(sourceFile, node, newNode);
20
- })
21
- })));
22
- })
9
+ apply: ts => (sourceFile, textRange) => pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.reverse, Ch.fromIterable, Ch.filter(AST.isNodeInRange(textRange)), Ch.filter(AST.isPipeableCallExpression(ts)), Ch.head, O.map(node => ({
10
+ description: `Rewrite ${AST.getHumanReadableName(sourceFile, node.expression)} to pipe`,
11
+ apply: changeTracker => {
12
+ const args = AST.asPipeArguments(ts)(node);
13
+ const newNode = ts.factory.createCallExpression(ts.factory.createIdentifier("pipe"), undefined, Array.from(args));
14
+ changeTracker.replaceNode(sourceFile, node, newNode);
15
+ }
16
+ })))
23
17
  });
24
18
  //# sourceMappingURL=addPipe.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"addPipe.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,mBAAmB;AACtC,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,SAASC,eAAe,EAAEC,wBAAwB,QAAQ,gCAAgC;AAC1F,OAAO,KAAKC,EAAE,MAAM,mBAAmB;AACvC,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,OAAO,KAAKC,CAAC,MAAM,oBAAoB;AAEvC,4BAAeL,cAAc,CAAC;EAC5BM,IAAI,EAAE,gBAAgB;EACtBC,WAAW,EAAE,oBAAoB;EACjCC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BZ,CAAC,CAACa,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACd,CAAC,CAACgB,OAAO,CAACf,GAAG,CAACgB,aAAa,CAAC,CAAC;IAEjD,OAAOX,IAAI,CACTL,GAAG,CAACiB,uBAAuB,CAACH,EAAE,CAAC,CAACJ,UAAU,EAAEC,SAAS,CAAC,EACtDP,EAAE,CAACc,OAAO,EACVd,EAAE,CAACe,YAAY,EACff,EAAE,CAACgB,MAAM,CAACpB,GAAG,CAACqB,aAAa,CAACV,SAAS,CAAC,CAAC,EACvCP,EAAE,CAACgB,MAAM,CAACjB,wBAAwB,CAACW,EAAE,CAAC,CAAC,EACvCV,EAAE,CAACkB,IAAI,EACPhB,CAAC,CAACiB,GAAG,CAAEC,IAAI,KAAM;MACfhB,WAAW,EAAE,WAAWR,GAAG,CAACyB,oBAAoB,CAACf,UAAU,EAAEc,IAAI,CAACE,UAAU,CAAC,UAAU;MACvFjB,KAAK,EAAEV,CAAC,CAACa,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMc,aAAa,GAAG,OAAOd,CAAC,CAACd,CAAC,CAACgB,OAAO,CAACf,GAAG,CAAC4B,gBAAgB,CAAC,CAAC;QAC/D,MAAMC,IAAI,GAAG3B,eAAe,CAACY,EAAE,CAAC,CAACU,IAAI,CAAC;QAEtC,MAAMM,OAAO,GAAGhB,EAAE,CAACiB,OAAO,CAACC,oBAAoB,CAC7ClB,EAAE,CAACiB,OAAO,CAACE,gBAAgB,CAAC,MAAM,CAAC,EACnCC,SAAS,EACTC,KAAK,CAACC,IAAI,CAACP,IAAI,CAAC,CACjB;QAEDF,aAAa,CAACU,WAAW,CAAC3B,UAAU,EAAEc,IAAI,EAAEM,OAAO,CAAC;MACtD,CAAC;KACF,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC","names":["T","AST","createRefactor","asPipeArguments","isPipeableCallExpression","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","getNodesContainingRange","reverse","fromIterable","filter","isNodeInRange","head","map","node","getHumanReadableName","expression","changeTracker","ChangeTrackerApi","args","newNode","factory","createCallExpression","createIdentifier","undefined","Array","from","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/addPipe.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"addPipe.mjs","mappings":"AAAA,SAASA,cAAc,QAAQ,+CAA+C;AAC9E,OAAO,KAAKC,GAAG,MAAM,oCAAoC;AACzD,SAASC,IAAI,QAAQ,yCAAyC;AAC9D,OAAO,KAAKC,CAAC,MAAM,uCAAuC;AAC1D,OAAO,KAAKC,EAAE,MAAM,8CAA8C;AAElE,4BAAeJ,cAAc,CAAC;EAC5BK,IAAI,EAAE,gBAAgB;EACtBC,WAAW,EAAE,oBAAoB;EACjCC,KAAK,EAAGC,EAAE,IACR,CAACC,UAAU,EAAEC,SAAS,KACpBR,IAAI,CACFD,GAAG,CAACU,uBAAuB,CAACH,EAAE,CAAC,CAACC,UAAU,EAAEC,SAAS,CAAC,EACtDN,EAAE,CAACQ,OAAO,EACVR,EAAE,CAACS,YAAY,EACfT,EAAE,CAACU,MAAM,CAACb,GAAG,CAACc,aAAa,CAACL,SAAS,CAAC,CAAC,EACvCN,EAAE,CAACU,MAAM,CAACb,GAAG,CAACe,wBAAwB,CAACR,EAAE,CAAC,CAAC,EAC3CJ,EAAE,CAACa,IAAI,EACPd,CAAC,CAACe,GAAG,CAAEC,IAAI,KAAM;IACfb,WAAW,EAAE,WAAWL,GAAG,CAACmB,oBAAoB,CAACX,UAAU,EAAEU,IAAI,CAACE,UAAU,CAAC,UAAU;IACvFd,KAAK,EAAGe,aAA2C,IAAI;MACrD,MAAMC,IAAI,GAAGtB,GAAG,CAACuB,eAAe,CAAChB,EAAE,CAAC,CAACW,IAAI,CAAC;MAE1C,MAAMM,OAAO,GAAGjB,EAAE,CAACkB,OAAO,CAACC,oBAAoB,CAC7CnB,EAAE,CAACkB,OAAO,CAACE,gBAAgB,CAAC,MAAM,CAAC,EACnCC,SAAS,EACTC,KAAK,CAACC,IAAI,CAACR,IAAI,CAAC,CACjB;MAEDD,aAAa,CAACU,WAAW,CAACvB,UAAU,EAAEU,IAAI,EAAEM,OAAO,CAAC;IACtD;GACD,CAAC,CAAC;CAEV,CAAC","names":["createRefactor","AST","pipe","O","Ch","name","description","apply","ts","sourceFile","textRange","getNodesContainingRange","reverse","fromIterable","filter","isNodeInRange","isPipeableCallExpression","head","map","node","getHumanReadableName","expression","changeTracker","args","asPipeArguments","newNode","factory","createCallExpression","createIdentifier","undefined","Array","from","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/addPipe.ts"],"sourcesContent":[null]}
@@ -1,24 +1,18 @@
1
- import * as T from "@effect/io/Effect";
2
- import * as AST from "@effect/language-service/ast";
3
1
  import { createRefactor } from "@effect/language-service/refactors/definition";
4
- import { getEffectModuleIdentifier, transformAsyncAwaitToEffectGen } from "@effect/language-service/utils";
5
- import * as Ch from "@fp-ts/data/Chunk";
6
- import { pipe } from "@fp-ts/data/Function";
7
- import * as O from "@fp-ts/data/Option";
2
+ import * as AST from "@effect/language-service/utils/AST";
3
+ import { pipe } from "@effect/language-service/utils/Function";
4
+ import * as O from "@effect/language-service/utils/Option";
5
+ import * as Ch from "@effect/language-service/utils/ReadonlyArray";
8
6
  export default /*#__PURE__*/createRefactor({
9
7
  name: "effect/asyncAwaitToGen",
10
8
  description: "Convert to Effect.gen",
11
- apply: (sourceFile, textRange) => T.gen(function* ($) {
12
- const ts = yield* $(T.service(AST.TypeScriptApi));
13
- return pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isFunctionDeclaration), Ch.filter(node => !!node.body), Ch.filter(node => !!(ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Async)), Ch.head, O.map(node => ({
14
- description: "Rewrite to Effect.gen",
15
- apply: T.gen(function* ($) {
16
- const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
17
- const effectName = getEffectModuleIdentifier(ts)(sourceFile);
18
- const newDeclaration = transformAsyncAwaitToEffectGen(ts)(node, effectName, expression => ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectName), "promise"), undefined, [expression]));
19
- changeTracker.replaceNode(sourceFile, node, newDeclaration);
20
- })
21
- })));
22
- })
9
+ apply: ts => (sourceFile, textRange) => pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isFunctionDeclaration), Ch.filter(node => !!node.body), Ch.filter(node => !!(ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Async)), Ch.head, O.map(node => ({
10
+ description: "Rewrite to Effect.gen",
11
+ apply: changeTracker => {
12
+ const effectName = AST.getEffectModuleIdentifier(ts)(sourceFile);
13
+ const newDeclaration = AST.transformAsyncAwaitToEffectGen(ts)(node, effectName, expression => ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectName), "promise"), undefined, [expression]));
14
+ changeTracker.replaceNode(sourceFile, node, newDeclaration);
15
+ }
16
+ })))
23
17
  });
24
18
  //# sourceMappingURL=asyncAwaitToGen.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"asyncAwaitToGen.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,mBAAmB;AACtC,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,SAASC,yBAAyB,EAAEC,8BAA8B,QAAQ,gCAAgC;AAC1G,OAAO,KAAKC,EAAE,MAAM,mBAAmB;AACvC,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,OAAO,KAAKC,CAAC,MAAM,oBAAoB;AAEvC,4BAAeL,cAAc,CAAC;EAC5BM,IAAI,EAAE,wBAAwB;EAC9BC,WAAW,EAAE,uBAAuB;EACpCC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BZ,CAAC,CAACa,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACd,CAAC,CAACgB,OAAO,CAACf,GAAG,CAACgB,aAAa,CAAC,CAAC;IAEjD,OAAOX,IAAI,CACTL,GAAG,CAACiB,uBAAuB,CAACH,EAAE,CAAC,CAACJ,UAAU,EAAEC,SAAS,CAAC,EACtDP,EAAE,CAACc,MAAM,CAACJ,EAAE,CAACK,qBAAqB,CAAC,EACnCf,EAAE,CAACc,MAAM,CAAEE,IAAI,IAAK,CAAC,CAACA,IAAI,CAACC,IAAI,CAAC,EAChCjB,EAAE,CAACc,MAAM,CAAEE,IAAI,IAAK,CAAC,EAAEN,EAAE,CAACQ,wBAAwB,CAACF,IAAI,CAAC,GAAGN,EAAE,CAACS,aAAa,CAACC,KAAK,CAAC,CAAC,EACnFpB,EAAE,CAACqB,IAAI,EACPnB,CAAC,CAACoB,GAAG,CAAEN,IAAI,KAAM;MACfZ,WAAW,EAAE,uBAAuB;MACpCC,KAAK,EAAEV,CAAC,CAACa,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMc,aAAa,GAAG,OAAOd,CAAC,CAACd,CAAC,CAACgB,OAAO,CAACf,GAAG,CAAC4B,gBAAgB,CAAC,CAAC;QAC/D,MAAMC,UAAU,GAAG3B,yBAAyB,CAACY,EAAE,CAAC,CAACJ,UAAU,CAAC;QAE5D,MAAMoB,cAAc,GAAG3B,8BAA8B,CAACW,EAAE,CAAC,CAACM,IAAI,EAAES,UAAU,EAAGE,UAAU,IACrFjB,EAAE,CAACkB,OAAO,CAACC,oBAAoB,CAC7BnB,EAAE,CAACkB,OAAO,CAACE,8BAA8B,CACvCpB,EAAE,CAACkB,OAAO,CAACG,gBAAgB,CAACN,UAAU,CAAC,EACvC,SAAS,CACV,EACDO,SAAS,EACT,CAACL,UAAU,CAAC,CACb,CAAC;QAEJJ,aAAa,CAACU,WAAW,CAAC3B,UAAU,EAAEU,IAAI,EAAEU,cAAc,CAAC;MAC7D,CAAC;KACF,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC","names":["T","AST","createRefactor","getEffectModuleIdentifier","transformAsyncAwaitToEffectGen","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","getNodesContainingRange","filter","isFunctionDeclaration","node","body","getCombinedModifierFlags","ModifierFlags","Async","head","map","changeTracker","ChangeTrackerApi","effectName","newDeclaration","expression","factory","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGen.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"asyncAwaitToGen.mjs","mappings":"AAAA,SAASA,cAAc,QAAQ,+CAA+C;AAC9E,OAAO,KAAKC,GAAG,MAAM,oCAAoC;AACzD,SAASC,IAAI,QAAQ,yCAAyC;AAC9D,OAAO,KAAKC,CAAC,MAAM,uCAAuC;AAC1D,OAAO,KAAKC,EAAE,MAAM,8CAA8C;AAElE,4BAAeJ,cAAc,CAAC;EAC5BK,IAAI,EAAE,wBAAwB;EAC9BC,WAAW,EAAE,uBAAuB;EACpCC,KAAK,EAAGC,EAAE,IACR,CAACC,UAAU,EAAEC,SAAS,KACpBR,IAAI,CACFD,GAAG,CAACU,uBAAuB,CAACH,EAAE,CAAC,CAACC,UAAU,EAAEC,SAAS,CAAC,EACtDN,EAAE,CAACQ,MAAM,CAACJ,EAAE,CAACK,qBAAqB,CAAC,EACnCT,EAAE,CAACQ,MAAM,CAAEE,IAAI,IAAK,CAAC,CAACA,IAAI,CAACC,IAAI,CAAC,EAChCX,EAAE,CAACQ,MAAM,CAAEE,IAAI,IAAK,CAAC,EAAEN,EAAE,CAACQ,wBAAwB,CAACF,IAAI,CAAC,GAAGN,EAAE,CAACS,aAAa,CAACC,KAAK,CAAC,CAAC,EACnFd,EAAE,CAACe,IAAI,EACPhB,CAAC,CAACiB,GAAG,CAAEN,IAAI,KAAM;IACfR,WAAW,EAAE,uBAAuB;IACpCC,KAAK,EAAGc,aAAa,IAAI;MACvB,MAAMC,UAAU,GAAGrB,GAAG,CAACsB,yBAAyB,CAACf,EAAE,CAAC,CAACC,UAAU,CAAC;MAEhE,MAAMe,cAAc,GAAGvB,GAAG,CAACwB,8BAA8B,CAACjB,EAAE,CAAC,CAACM,IAAI,EAAEQ,UAAU,EAAGI,UAAU,IACzFlB,EAAE,CAACmB,OAAO,CAACC,oBAAoB,CAC7BpB,EAAE,CAACmB,OAAO,CAACE,8BAA8B,CACvCrB,EAAE,CAACmB,OAAO,CAACG,gBAAgB,CAACR,UAAU,CAAC,EACvC,SAAS,CACV,EACDS,SAAS,EACT,CAACL,UAAU,CAAC,CACb,CAAC;MAEJL,aAAa,CAACW,WAAW,CAACvB,UAAU,EAAEK,IAAI,EAAEU,cAAc,CAAC;IAC7D;GACD,CAAC,CAAC;CAEV,CAAC","names":["createRefactor","AST","pipe","O","Ch","name","description","apply","ts","sourceFile","textRange","getNodesContainingRange","filter","isFunctionDeclaration","node","body","getCombinedModifierFlags","ModifierFlags","Async","head","map","changeTracker","effectName","getEffectModuleIdentifier","newDeclaration","transformAsyncAwaitToEffectGen","expression","factory","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGen.ts"],"sourcesContent":[null]}
@@ -1,29 +1,23 @@
1
- import * as T from "@effect/io/Effect";
2
- import * as AST from "@effect/language-service/ast";
3
1
  import { createRefactor } from "@effect/language-service/refactors/definition";
4
- import { getEffectModuleIdentifier, transformAsyncAwaitToEffectGen } from "@effect/language-service/utils";
5
- import * as Ch from "@fp-ts/data/Chunk";
6
- import { pipe } from "@fp-ts/data/Function";
7
- import * as O from "@fp-ts/data/Option";
2
+ import * as AST from "@effect/language-service/utils/AST";
3
+ import { pipe } from "@effect/language-service/utils/Function";
4
+ import * as O from "@effect/language-service/utils/Option";
5
+ import * as Ch from "@effect/language-service/utils/ReadonlyArray";
8
6
  export default /*#__PURE__*/createRefactor({
9
7
  name: "effect/asyncAwaitToGenTryPromise",
10
8
  description: "Convert to Effect.gen with failures",
11
- apply: (sourceFile, textRange) => T.gen(function* ($) {
12
- const ts = yield* $(T.service(AST.TypeScriptApi));
13
- return pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isFunctionDeclaration), Ch.filter(node => !!node.body), Ch.filter(node => !!(ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Async)), Ch.head, O.map(node => ({
14
- description: "Rewrite to Effect.gen with failures",
15
- apply: T.gen(function* ($) {
16
- const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
17
- const effectName = getEffectModuleIdentifier(ts)(sourceFile);
18
- let errorCount = 0;
19
- function createErrorADT() {
20
- errorCount++;
21
- return ts.factory.createObjectLiteralExpression([ts.factory.createPropertyAssignment("_tag", ts.factory.createAsExpression(ts.factory.createStringLiteral("Error" + errorCount), ts.factory.createTypeReferenceNode("const"))), ts.factory.createShorthandPropertyAssignment("error")]);
22
- }
23
- const newDeclaration = transformAsyncAwaitToEffectGen(ts)(node, effectName, expression => ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectName), "tryCatchPromise"), undefined, [ts.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, expression), ts.factory.createArrowFunction(undefined, undefined, [ts.factory.createParameterDeclaration(undefined, undefined, "error")], undefined, undefined, createErrorADT())]));
24
- changeTracker.replaceNode(sourceFile, node, newDeclaration);
25
- })
26
- })));
27
- })
9
+ apply: ts => (sourceFile, textRange) => pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isFunctionDeclaration), Ch.filter(node => !!node.body), Ch.filter(node => !!(ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Async)), Ch.head, O.map(node => ({
10
+ description: "Rewrite to Effect.gen with failures",
11
+ apply: changeTracker => {
12
+ const effectName = AST.getEffectModuleIdentifier(ts)(sourceFile);
13
+ let errorCount = 0;
14
+ function createErrorADT() {
15
+ errorCount++;
16
+ return ts.factory.createObjectLiteralExpression([ts.factory.createPropertyAssignment("_tag", ts.factory.createAsExpression(ts.factory.createStringLiteral("Error" + errorCount), ts.factory.createTypeReferenceNode("const"))), ts.factory.createShorthandPropertyAssignment("error")]);
17
+ }
18
+ const newDeclaration = AST.transformAsyncAwaitToEffectGen(ts)(node, effectName, expression => ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectName), "tryCatchPromise"), undefined, [ts.factory.createArrowFunction(undefined, undefined, [], undefined, undefined, expression), ts.factory.createArrowFunction(undefined, undefined, [ts.factory.createParameterDeclaration(undefined, undefined, "error")], undefined, undefined, createErrorADT())]));
19
+ changeTracker.replaceNode(sourceFile, node, newDeclaration);
20
+ }
21
+ })))
28
22
  });
29
23
  //# sourceMappingURL=asyncAwaitToGenTryPromise.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"asyncAwaitToGenTryPromise.mjs","mappings":"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","names":["T","AST","createRefactor","getEffectModuleIdentifier","transformAsyncAwaitToEffectGen","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","getNodesContainingRange","filter","isFunctionDeclaration","node","body","getCombinedModifierFlags","ModifierFlags","Async","head","map","changeTracker","ChangeTrackerApi","effectName","errorCount","createErrorADT","factory","createObjectLiteralExpression","createPropertyAssignment","createAsExpression","createStringLiteral","createTypeReferenceNode","createShorthandPropertyAssignment","newDeclaration","expression","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","createArrowFunction","createParameterDeclaration","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGenTryPromise.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"asyncAwaitToGenTryPromise.mjs","mappings":"AAAA,SAASA,cAAc,QAAQ,+CAA+C;AAC9E,OAAO,KAAKC,GAAG,MAAM,oCAAoC;AACzD,SAASC,IAAI,QAAQ,yCAAyC;AAC9D,OAAO,KAAKC,CAAC,MAAM,uCAAuC;AAC1D,OAAO,KAAKC,EAAE,MAAM,8CAA8C;AAElE,4BAAeJ,cAAc,CAAC;EAC5BK,IAAI,EAAE,kCAAkC;EACxCC,WAAW,EAAE,qCAAqC;EAClDC,KAAK,EAAGC,EAAE,IACR,CAACC,UAAU,EAAEC,SAAS,KACpBR,IAAI,CACFD,GAAG,CAACU,uBAAuB,CAACH,EAAE,CAAC,CAACC,UAAU,EAAEC,SAAS,CAAC,EACtDN,EAAE,CAACQ,MAAM,CAACJ,EAAE,CAACK,qBAAqB,CAAC,EACnCT,EAAE,CAACQ,MAAM,CAAEE,IAAI,IAAK,CAAC,CAACA,IAAI,CAACC,IAAI,CAAC,EAChCX,EAAE,CAACQ,MAAM,CAAEE,IAAI,IAAK,CAAC,EAAEN,EAAE,CAACQ,wBAAwB,CAACF,IAAI,CAAC,GAAGN,EAAE,CAACS,aAAa,CAACC,KAAK,CAAC,CAAC,EACnFd,EAAE,CAACe,IAAI,EACPhB,CAAC,CAACiB,GAAG,CAAEN,IAAI,KAAM;IACfR,WAAW,EAAE,qCAAqC;IAClDC,KAAK,EAAGc,aAAa,IAAI;MACvB,MAAMC,UAAU,GAAGrB,GAAG,CAACsB,yBAAyB,CAACf,EAAE,CAAC,CAACC,UAAU,CAAC;MAEhE,IAAIe,UAAU,GAAG,CAAC;MAElB,SAASC,cAAc;QACrBD,UAAU,EAAE;QACZ,OAAOhB,EAAE,CAACkB,OAAO,CAACC,6BAA6B,CAAC,CAC9CnB,EAAE,CAACkB,OAAO,CAACE,wBAAwB,CACjC,MAAM,EACNpB,EAAE,CAACkB,OAAO,CAACG,kBAAkB,CAC3BrB,EAAE,CAACkB,OAAO,CAACI,mBAAmB,CAAC,OAAO,GAAGN,UAAU,CAAC,EACpDhB,EAAE,CAACkB,OAAO,CAACK,uBAAuB,CAAC,OAAO,CAAC,CAC5C,CACF,EACDvB,EAAE,CAACkB,OAAO,CAACM,iCAAiC,CAAC,OAAO,CAAC,CACtD,CAAC;MACJ;MAEA,MAAMC,cAAc,GAAIhC,GAAG,CAACiC,8BAA8B,CAAC1B,EAAE,CAAC,CAACM,IAAI,EAAEQ,UAAU,EAAGa,UAAU,IAC1F3B,EAAE,CAACkB,OAAO,CAACU,oBAAoB,CAC7B5B,EAAE,CAACkB,OAAO,CAACW,8BAA8B,CACvC7B,EAAE,CAACkB,OAAO,CAACY,gBAAgB,CAAChB,UAAU,CAAC,EACvC,iBAAiB,CAClB,EACDiB,SAAS,EACT,CACE/B,EAAE,CAACkB,OAAO,CAACc,mBAAmB,CAACD,SAAS,EAAEA,SAAS,EAAE,EAAE,EAAEA,SAAS,EAAEA,SAAS,EAAEJ,UAAU,CAAC,EAC1F3B,EAAE,CAACkB,OAAO,CAACc,mBAAmB,CAC5BD,SAAS,EACTA,SAAS,EACT,CAAC/B,EAAE,CAACkB,OAAO,CAACe,0BAA0B,CAACF,SAAS,EAAEA,SAAS,EAAE,OAAO,CAAC,CAAC,EACtEA,SAAS,EACTA,SAAS,EACTd,cAAc,EAAE,CACjB,CACF,CACF,CAAE;MAELJ,aAAa,CAACqB,WAAW,CAACjC,UAAU,EAAEK,IAAI,EAAEmB,cAAc,CAAC;IAC7D;GACD,CAAC,CAAC;CAEV,CAAC","names":["createRefactor","AST","pipe","O","Ch","name","description","apply","ts","sourceFile","textRange","getNodesContainingRange","filter","isFunctionDeclaration","node","body","getCombinedModifierFlags","ModifierFlags","Async","head","map","changeTracker","effectName","getEffectModuleIdentifier","errorCount","createErrorADT","factory","createObjectLiteralExpression","createPropertyAssignment","createAsExpression","createStringLiteral","createTypeReferenceNode","createShorthandPropertyAssignment","newDeclaration","transformAsyncAwaitToEffectGen","expression","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","createArrowFunction","createParameterDeclaration","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGenTryPromise.ts"],"sourcesContent":[null]}
@@ -1 +1 @@
1
- {"version":3,"file":"definition.mjs","mappings":"AAoBA,OAAM,SAAUA,cAAc,CAACC,UAA8B;EAC3D,OAAOA,UAAU;AACnB","names":["createRefactor","definition"],"sourceRoot":"","sources":["../../../src/refactors/definition.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"definition.mjs","mappings":"AAkBA,OAAM,SAAUA,cAAc,CAACC,UAA8B;EAC3D,OAAOA,UAAU;AACnB","names":["createRefactor","definition"],"sourceRoot":"","sources":["../../../src/refactors/definition.ts"],"sourcesContent":[null]}
@@ -1,43 +1,38 @@
1
- import * as T from "@effect/io/Effect";
2
- import * as AST from "@effect/language-service/ast";
3
1
  import { createRefactor } from "@effect/language-service/refactors/definition";
4
- import * as Ch from "@fp-ts/data/Chunk";
5
- import { pipe } from "@fp-ts/data/Function";
6
- import * as O from "@fp-ts/data/Option";
2
+ import * as AST from "@effect/language-service/utils/AST";
3
+ import { pipe } from "@effect/language-service/utils/Function";
4
+ import * as O from "@effect/language-service/utils/Option";
5
+ import * as Ch from "@effect/language-service/utils/ReadonlyArray";
7
6
  export default /*#__PURE__*/createRefactor({
8
7
  name: "effect/functionToArrow",
9
8
  description: "Convert to arrow",
10
- apply: (sourceFile, textRange) => T.gen(function* ($) {
11
- const ts = yield* $(T.service(AST.TypeScriptApi));
12
- return pipe(pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isFunctionDeclaration)), Ch.concat(pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isMethodDeclaration))), Ch.filter(node => !!node.body), Ch.filter(node => !!node.name && AST.isNodeInRange(textRange)(node.name)), Ch.head, O.map(node => ({
13
- description: "Convert to arrow",
14
- apply: T.gen(function* ($) {
15
- const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
16
- const body = node.body;
17
- let newBody = ts.factory.createBlock(body.statements);
18
- if (body.statements.length === 1) {
19
- const statement = body.statements[0];
20
- if (statement && ts.isReturnStatement(statement) && statement.expression) {
21
- newBody = statement.expression;
22
- }
9
+ apply: ts => (sourceFile, textRange) => pipe(pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isFunctionDeclaration)), Ch.concat(pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isMethodDeclaration))), Ch.filter(node => !!node.body), Ch.filter(node => !!node.name && AST.isNodeInRange(textRange)(node.name)), Ch.head, O.map(node => ({
10
+ description: "Convert to arrow",
11
+ apply: changeTracker => {
12
+ const body = node.body;
13
+ let newBody = ts.factory.createBlock(body.statements);
14
+ if (body.statements.length === 1) {
15
+ const statement = body.statements[0];
16
+ if (statement && ts.isReturnStatement(statement) && statement.expression) {
17
+ newBody = statement.expression;
23
18
  }
24
- let arrowFlags = ts.getCombinedModifierFlags(node);
25
- arrowFlags &= ~ts.ModifierFlags.Export;
26
- arrowFlags &= ~ts.ModifierFlags.Default;
27
- const arrowModifiers = ts.factory.createModifiersFromModifierFlags(arrowFlags);
28
- const arrowFunction = ts.factory.createArrowFunction(arrowModifiers, node.typeParameters, node.parameters, undefined, ts.factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), newBody);
29
- let constFlags = ts.getCombinedModifierFlags(node);
30
- constFlags &= ~arrowFlags;
31
- const constModifiers = ts.factory.createModifiersFromModifierFlags(constFlags);
32
- let newDeclaration = node;
33
- if (ts.isMethodDeclaration(node)) {
34
- newDeclaration = ts.factory.createPropertyDeclaration(constModifiers, node.name, undefined, undefined, arrowFunction);
35
- } else if (ts.isFunctionDeclaration(node)) {
36
- newDeclaration = ts.factory.createVariableStatement(constModifiers, ts.factory.createVariableDeclarationList([ts.factory.createVariableDeclaration(node.name, undefined, undefined, arrowFunction)], ts.NodeFlags.Const));
37
- }
38
- changeTracker.replaceNode(sourceFile, node, newDeclaration);
39
- })
40
- })));
41
- })
19
+ }
20
+ let arrowFlags = ts.getCombinedModifierFlags(node);
21
+ arrowFlags &= ~ts.ModifierFlags.Export;
22
+ arrowFlags &= ~ts.ModifierFlags.Default;
23
+ const arrowModifiers = ts.factory.createModifiersFromModifierFlags(arrowFlags);
24
+ const arrowFunction = ts.factory.createArrowFunction(arrowModifiers, node.typeParameters, node.parameters, undefined, ts.factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), newBody);
25
+ let constFlags = ts.getCombinedModifierFlags(node);
26
+ constFlags &= ~arrowFlags;
27
+ const constModifiers = ts.factory.createModifiersFromModifierFlags(constFlags);
28
+ let newDeclaration = node;
29
+ if (ts.isMethodDeclaration(node)) {
30
+ newDeclaration = ts.factory.createPropertyDeclaration(constModifiers, node.name, undefined, undefined, arrowFunction);
31
+ } else if (ts.isFunctionDeclaration(node)) {
32
+ newDeclaration = ts.factory.createVariableStatement(constModifiers, ts.factory.createVariableDeclarationList([ts.factory.createVariableDeclaration(node.name, undefined, undefined, arrowFunction)], ts.NodeFlags.Const));
33
+ }
34
+ changeTracker.replaceNode(sourceFile, node, newDeclaration);
35
+ }
36
+ })))
42
37
  });
43
38
  //# sourceMappingURL=functionToArrow.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"functionToArrow.mjs","mappings":"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","names":["T","AST","createRefactor","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","getNodesContainingRange","filter","isFunctionDeclaration","concat","isMethodDeclaration","node","body","isNodeInRange","head","map","changeTracker","ChangeTrackerApi","newBody","factory","createBlock","statements","length","statement","isReturnStatement","expression","arrowFlags","getCombinedModifierFlags","ModifierFlags","Export","Default","arrowModifiers","createModifiersFromModifierFlags","arrowFunction","createArrowFunction","typeParameters","parameters","undefined","createToken","SyntaxKind","EqualsGreaterThanToken","constFlags","constModifiers","newDeclaration","createPropertyDeclaration","createVariableStatement","createVariableDeclarationList","createVariableDeclaration","NodeFlags","Const","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/functionToArrow.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"functionToArrow.mjs","mappings":"AAAA,SAASA,cAAc,QAAQ,+CAA+C;AAC9E,OAAO,KAAKC,GAAG,MAAM,oCAAoC;AACzD,SAASC,IAAI,QAAQ,yCAAyC;AAC9D,OAAO,KAAKC,CAAC,MAAM,uCAAuC;AAC1D,OAAO,KAAKC,EAAE,MAAM,8CAA8C;AAElE,4BAAeJ,cAAc,CAAC;EAC5BK,IAAI,EAAE,wBAAwB;EAC9BC,WAAW,EAAE,kBAAkB;EAC/BC,KAAK,EAAGC,EAAE,IACR,CAACC,UAAU,EAAEC,SAAS,KACpBR,IAAI,CACFA,IAAI,CAACD,GAAG,CAACU,uBAAuB,CAACH,EAAE,CAAC,CAACC,UAAU,EAAEC,SAAS,CAAC,EAAEN,EAAE,CAACQ,MAAM,CAACJ,EAAE,CAACK,qBAAqB,CAAC,CAAC,EACjGT,EAAE,CAACU,MAAM,CAACZ,IAAI,CAACD,GAAG,CAACU,uBAAuB,CAACH,EAAE,CAAC,CAACC,UAAU,EAAEC,SAAS,CAAC,EAAEN,EAAE,CAACQ,MAAM,CAACJ,EAAE,CAACO,mBAAmB,CAAC,CAAC,CAAC,EAC1GX,EAAE,CAACQ,MAAM,CAAEI,IAAI,IAAK,CAAC,CAACA,IAAI,CAACC,IAAI,CAAC,EAChCb,EAAE,CAACQ,MAAM,CAAEI,IAAI,IAAK,CAAC,CAACA,IAAI,CAACX,IAAI,IAAIJ,GAAG,CAACiB,aAAa,CAACR,SAAS,CAAC,CAACM,IAAI,CAACX,IAAI,CAAC,CAAC,EAC3ED,EAAE,CAACe,IAAI,EACPhB,CAAC,CAACiB,GAAG,CACFJ,IAAI,KAAM;IACTV,WAAW,EAAE,kBAAkB;IAC/BC,KAAK,EAAGc,aAAa,IAAI;MACvB,MAAMJ,IAAI,GAAGD,IAAI,CAACC,IAAK;MACvB,IAAIK,OAAO,GAAmBd,EAAE,CAACe,OAAO,CAACC,WAAW,CAACP,IAAI,CAACQ,UAAU,CAAC;MACrE,IAAIR,IAAI,CAACQ,UAAU,CAACC,MAAM,KAAK,CAAC,EAAE;QAChC,MAAMC,SAAS,GAAGV,IAAI,CAACQ,UAAU,CAAC,CAAC,CAAC;QACpC,IAAIE,SAAS,IAAInB,EAAE,CAACoB,iBAAiB,CAACD,SAAS,CAAC,IAAIA,SAAS,CAACE,UAAU,EAAE;UACxEP,OAAO,GAAGK,SAAS,CAACE,UAAW;;;MAInC,IAAIC,UAAU,GAAGtB,EAAE,CAACuB,wBAAwB,CAACf,IAAI,CAAC;MAClDc,UAAU,IAAI,CAACtB,EAAE,CAACwB,aAAa,CAACC,MAAM;MACtCH,UAAU,IAAI,CAACtB,EAAE,CAACwB,aAAa,CAACE,OAAO;MACvC,MAAMC,cAAc,GAAG3B,EAAE,CAACe,OAAO,CAACa,gCAAgC,CAACN,UAAU,CAAC;MAE9E,MAAMO,aAAa,GAAG7B,EAAE,CAACe,OAAO,CAACe,mBAAmB,CAClDH,cAAc,EACdnB,IAAI,CAACuB,cAAc,EACnBvB,IAAI,CAACwB,UAAU,EACfC,SAAS,EACTjC,EAAE,CAACe,OAAO,CAACmB,WAAW,CAAClC,EAAE,CAACmC,UAAU,CAACC,sBAAsB,CAAC,EAC5DtB,OAAO,CACR;MAED,IAAIuB,UAAU,GAAGrC,EAAE,CAACuB,wBAAwB,CAACf,IAAI,CAAC;MAClD6B,UAAU,IAAI,CAACf,UAAU;MACzB,MAAMgB,cAAc,GAAGtC,EAAE,CAACe,OAAO,CAACa,gCAAgC,CAACS,UAAU,CAAC;MAE9E,IAAIE,cAAc,GAAY/B,IAAI;MAClC,IAAIR,EAAE,CAACO,mBAAmB,CAACC,IAAI,CAAC,EAAE;QAChC+B,cAAc,GAAGvC,EAAE,CAACe,OAAO,CAACyB,yBAAyB,CACnDF,cAAc,EACd9B,IAAI,CAACX,IAAK,EACVoC,SAAS,EACTA,SAAS,EACTJ,aAAa,CACd;OACF,MAAM,IAAI7B,EAAE,CAACK,qBAAqB,CAACG,IAAI,CAAC,EAAE;QACzC+B,cAAc,GAAGvC,EAAE,CAACe,OAAO,CAAC0B,uBAAuB,CACjDH,cAAc,EACdtC,EAAE,CAACe,OAAO,CAAC2B,6BAA6B,CACtC,CACE1C,EAAE,CAACe,OAAO,CAAC4B,yBAAyB,CAACnC,IAAI,CAACX,IAAK,EAAEoC,SAAS,EAAEA,SAAS,EAAEJ,aAAa,CAAC,CACtF,EACD7B,EAAE,CAAC4C,SAAS,CAACC,KAAK,CACnB,CACF;;MAEHhC,aAAa,CAACiC,WAAW,CAAC7C,UAAU,EAAEO,IAAI,EAAE+B,cAAc,CAAC;IAC7D;GACD,CAAC,CACH;CAER,CAAC","names":["createRefactor","AST","pipe","O","Ch","name","description","apply","ts","sourceFile","textRange","getNodesContainingRange","filter","isFunctionDeclaration","concat","isMethodDeclaration","node","body","isNodeInRange","head","map","changeTracker","newBody","factory","createBlock","statements","length","statement","isReturnStatement","expression","arrowFlags","getCombinedModifierFlags","ModifierFlags","Export","Default","arrowModifiers","createModifiersFromModifierFlags","arrowFunction","createArrowFunction","typeParameters","parameters","undefined","createToken","SyntaxKind","EqualsGreaterThanToken","constFlags","constModifiers","newDeclaration","createPropertyDeclaration","createVariableStatement","createVariableDeclarationList","createVariableDeclaration","NodeFlags","Const","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/functionToArrow.ts"],"sourcesContent":[null]}
@@ -2,8 +2,6 @@ import addPipe from "@effect/language-service/refactors/addPipe";
2
2
  import asyncAwaitToGen from "@effect/language-service/refactors/asyncAwaitToGen";
3
3
  import asyncAwaitToGenTryPromise from "@effect/language-service/refactors/asyncAwaitToGenTryPromise";
4
4
  import functionToArrow from "@effect/language-service/refactors/functionToArrow";
5
- import noSyncWithConstant from "@effect/language-service/refactors/noSyncWithConstant";
6
- import removeCurryArrow from "@effect/language-service/refactors/removeCurryArrow";
7
5
  import removePipe from "@effect/language-service/refactors/removePipe";
8
6
  import toggleReturnTypeAnnotation from "@effect/language-service/refactors/toggleReturnTypeAnnotation";
9
7
  import toggleTypeAnnotation from "@effect/language-service/refactors/toggleTypeAnnotation";
@@ -13,11 +11,9 @@ export default {
13
11
  asyncAwaitToGenTryPromise,
14
12
  removePipe,
15
13
  addPipe,
16
- removeCurryArrow,
17
14
  functionToArrow,
18
15
  toggleTypeAnnotation,
19
16
  toggleReturnTypeAnnotation,
20
- wrapWithPipe,
21
- noSyncWithConstant
17
+ wrapWithPipe
22
18
  };
23
19
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","mappings":"AAAA,OAAOA,OAAO,MAAM,4CAA4C;AAChE,OAAOC,eAAe,MAAM,oDAAoD;AAChF,OAAOC,yBAAyB,MAAM,8DAA8D;AACpG,OAAOC,eAAe,MAAM,oDAAoD;AAChF,OAAOC,kBAAkB,MAAM,uDAAuD;AACtF,OAAOC,gBAAgB,MAAM,qDAAqD;AAClF,OAAOC,UAAU,MAAM,+CAA+C;AACtE,OAAOC,0BAA0B,MAAM,+DAA+D;AACtG,OAAOC,oBAAoB,MAAM,yDAAyD;AAC1F,OAAOC,YAAY,MAAM,iDAAiD;AAE1E,eAAe;EACbR,eAAe;EACfC,yBAAyB;EACzBI,UAAU;EACVN,OAAO;EACPK,gBAAgB;EAChBF,eAAe;EACfK,oBAAoB;EACpBD,0BAA0B;EAC1BE,YAAY;EACZL;CACD","names":["addPipe","asyncAwaitToGen","asyncAwaitToGenTryPromise","functionToArrow","noSyncWithConstant","removeCurryArrow","removePipe","toggleReturnTypeAnnotation","toggleTypeAnnotation","wrapWithPipe"],"sourceRoot":"","sources":["../../../src/refactors/index.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"index.mjs","mappings":"AAAA,OAAOA,OAAO,MAAM,4CAA4C;AAChE,OAAOC,eAAe,MAAM,oDAAoD;AAChF,OAAOC,yBAAyB,MAAM,8DAA8D;AACpG,OAAOC,eAAe,MAAM,oDAAoD;AAChF,OAAOC,UAAU,MAAM,+CAA+C;AACtE,OAAOC,0BAA0B,MAAM,+DAA+D;AACtG,OAAOC,oBAAoB,MAAM,yDAAyD;AAC1F,OAAOC,YAAY,MAAM,iDAAiD;AAE1E,eAAe;EACbN,eAAe;EACfC,yBAAyB;EACzBE,UAAU;EACVJ,OAAO;EACPG,eAAe;EACfG,oBAAoB;EACpBD,0BAA0B;EAC1BE;CACD","names":["addPipe","asyncAwaitToGen","asyncAwaitToGenTryPromise","functionToArrow","removePipe","toggleReturnTypeAnnotation","toggleTypeAnnotation","wrapWithPipe"],"sourceRoot":"","sources":["../../../src/refactors/index.ts"],"sourcesContent":[null]}
@@ -1,23 +1,17 @@
1
- import * as T from "@effect/io/Effect";
2
- import * as AST from "@effect/language-service/ast";
3
1
  import { createRefactor } from "@effect/language-service/refactors/definition";
4
- import { isPipeCall } from "@effect/language-service/utils";
5
- import * as Ch from "@fp-ts/data/Chunk";
6
- import { pipe } from "@fp-ts/data/Function";
7
- import * as O from "@fp-ts/data/Option";
2
+ import * as AST from "@effect/language-service/utils/AST";
3
+ import { pipe } from "@effect/language-service/utils/Function";
4
+ import * as O from "@effect/language-service/utils/Option";
5
+ import * as Ch from "@effect/language-service/utils/ReadonlyArray";
8
6
  export default /*#__PURE__*/createRefactor({
9
7
  name: "effect/removePipe",
10
8
  description: "Remove pipe call",
11
- apply: (sourceFile, textRange) => T.gen(function* ($) {
12
- const ts = yield* $(T.service(AST.TypeScriptApi));
13
- return pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(isPipeCall(ts)), Ch.filter(node => AST.isNodeInRange(textRange)(node.expression)), Ch.filter(node => node.arguments.length > 1), Ch.head, O.map(node => ({
14
- description: "Remove pipe call",
15
- apply: T.gen(function* ($) {
16
- const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
17
- const newNode = node.arguments.slice(1).reduce((inner, exp) => ts.factory.createCallExpression(exp, undefined, [inner]), node.arguments[0]);
18
- changeTracker.replaceNode(sourceFile, node, newNode);
19
- })
20
- })));
21
- })
9
+ apply: ts => (sourceFile, textRange) => pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(AST.isPipeCall(ts)), Ch.filter(node => AST.isNodeInRange(textRange)(node.expression)), Ch.filter(node => node.arguments.length > 1), Ch.head, O.map(node => ({
10
+ description: "Remove pipe call",
11
+ apply: changeTracker => {
12
+ const newNode = node.arguments.slice(1).reduce((inner, exp) => ts.factory.createCallExpression(exp, undefined, [inner]), node.arguments[0]);
13
+ changeTracker.replaceNode(sourceFile, node, newNode);
14
+ }
15
+ })))
22
16
  });
23
17
  //# sourceMappingURL=removePipe.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"removePipe.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,mBAAmB;AACtC,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,SAASC,UAAU,QAAQ,gCAAgC;AAC3D,OAAO,KAAKC,EAAE,MAAM,mBAAmB;AACvC,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,OAAO,KAAKC,CAAC,MAAM,oBAAoB;AAEvC,4BAAeJ,cAAc,CAAC;EAC5BK,IAAI,EAAE,mBAAmB;EACzBC,WAAW,EAAE,kBAAkB;EAC/BC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BX,CAAC,CAACY,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACb,CAAC,CAACe,OAAO,CAACd,GAAG,CAACe,aAAa,CAAC,CAAC;IAEjD,OAAOX,IAAI,CACTJ,GAAG,CAACgB,uBAAuB,CAACH,EAAE,CAAC,CAACJ,UAAU,EAAEC,SAAS,CAAC,EACtDP,EAAE,CAACc,MAAM,CAACf,UAAU,CAACW,EAAE,CAAC,CAAC,EACzBV,EAAE,CAACc,MAAM,CAAEC,IAAI,IAAKlB,GAAG,CAACmB,aAAa,CAACT,SAAS,CAAC,CAACQ,IAAI,CAACE,UAAU,CAAC,CAAC,EAClEjB,EAAE,CAACc,MAAM,CACNC,IAAI,IAAKA,IAAI,CAACG,SAAS,CAACC,MAAM,GAAG,CAAC,CACpC,EACDnB,EAAE,CAACoB,IAAI,EACPlB,CAAC,CAACmB,GAAG,CAAEN,IAAI,KAAM;MACfX,WAAW,EAAE,kBAAkB;MAC/BC,KAAK,EAAET,CAAC,CAACY,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMa,aAAa,GAAG,OAAOb,CAAC,CAACb,CAAC,CAACe,OAAO,CAACd,GAAG,CAAC0B,gBAAgB,CAAC,CAAC;QAE/D,MAAMC,OAAO,GAAGT,IAAI,CAACG,SAAS,CAACO,KAAK,CAAC,CAAC,CAAC,CAACC,MAAM,CAC5C,CAACC,KAAK,EAAEC,GAAG,KAAKlB,EAAE,CAACmB,OAAO,CAACC,oBAAoB,CAACF,GAAG,EAAEG,SAAS,EAAE,CAACJ,KAAK,CAAC,CAAC,EACxEZ,IAAI,CAACG,SAAS,CAAC,CAAC,CAAE,CACnB;QAEDI,aAAa,CAACU,WAAW,CAAC1B,UAAU,EAAES,IAAI,EAAES,OAAO,CAAC;MACtD,CAAC;KACF,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC","names":["T","AST","createRefactor","isPipeCall","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","getNodesContainingRange","filter","node","isNodeInRange","expression","arguments","length","head","map","changeTracker","ChangeTrackerApi","newNode","slice","reduce","inner","exp","factory","createCallExpression","undefined","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/removePipe.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"removePipe.mjs","mappings":"AAAA,SAASA,cAAc,QAAQ,+CAA+C;AAC9E,OAAO,KAAKC,GAAG,MAAM,oCAAoC;AACzD,SAASC,IAAI,QAAQ,yCAAyC;AAC9D,OAAO,KAAKC,CAAC,MAAM,uCAAuC;AAC1D,OAAO,KAAKC,EAAE,MAAM,8CAA8C;AAElE,4BAAeJ,cAAc,CAAC;EAC5BK,IAAI,EAAE,mBAAmB;EACzBC,WAAW,EAAE,kBAAkB;EAC/BC,KAAK,EAAGC,EAAE,IACR,CAACC,UAAU,EAAEC,SAAS,KACpBR,IAAI,CACFD,GAAG,CAACU,uBAAuB,CAACH,EAAE,CAAC,CAACC,UAAU,EAAEC,SAAS,CAAC,EACtDN,EAAE,CAACQ,MAAM,CAACX,GAAG,CAACY,UAAU,CAACL,EAAE,CAAC,CAAC,EAC7BJ,EAAE,CAACQ,MAAM,CAAEE,IAAI,IAAKb,GAAG,CAACc,aAAa,CAACL,SAAS,CAAC,CAACI,IAAI,CAACE,UAAU,CAAC,CAAC,EAClEZ,EAAE,CAACQ,MAAM,CACNE,IAAI,IAAKA,IAAI,CAACG,SAAS,CAACC,MAAM,GAAG,CAAC,CACpC,EACDd,EAAE,CAACe,IAAI,EACPhB,CAAC,CAACiB,GAAG,CAAEN,IAAI,KAAM;IACfR,WAAW,EAAE,kBAAkB;IAC/BC,KAAK,EAAGc,aAAa,IAAI;MACvB,MAAMC,OAAO,GAAGR,IAAI,CAACG,SAAS,CAACM,KAAK,CAAC,CAAC,CAAC,CAACC,MAAM,CAC5C,CAACC,KAAK,EAAEC,GAAG,KAAKlB,EAAE,CAACmB,OAAO,CAACC,oBAAoB,CAACF,GAAG,EAAEG,SAAS,EAAE,CAACJ,KAAK,CAAC,CAAC,EACxEX,IAAI,CAACG,SAAS,CAAC,CAAC,CAAE,CACnB;MAEDI,aAAa,CAACS,WAAW,CAACrB,UAAU,EAAEK,IAAI,EAAEQ,OAAO,CAAC;IACtD;GACD,CAAC,CAAC;CAEV,CAAC","names":["createRefactor","AST","pipe","O","Ch","name","description","apply","ts","sourceFile","textRange","getNodesContainingRange","filter","isPipeCall","node","isNodeInRange","expression","arguments","length","head","map","changeTracker","newNode","slice","reduce","inner","exp","factory","createCallExpression","undefined","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/removePipe.ts"],"sourcesContent":[null]}
@@ -1,15 +1,12 @@
1
- import * as T from "@effect/io/Effect";
2
- import * as AST from "@effect/language-service/ast";
3
1
  import { createRefactor } from "@effect/language-service/refactors/definition";
4
- import { addReturnTypeAnnotation, removeReturnTypeAnnotation } from "@effect/language-service/utils";
5
- import * as Ch from "@fp-ts/data/Chunk";
6
- import { pipe } from "@fp-ts/data/Function";
7
- import * as O from "@fp-ts/data/Option";
2
+ import * as AST from "@effect/language-service/utils/AST";
3
+ import { pipe } from "@effect/language-service/utils/Function";
4
+ import * as O from "@effect/language-service/utils/Option";
5
+ import * as Ch from "@effect/language-service/utils/ReadonlyArray";
8
6
  export default /*#__PURE__*/createRefactor({
9
7
  name: "effect/toggleReturnTypeAnnotation",
10
8
  description: "Toggle return type annotation",
11
- apply: (sourceFile, textRange) => T.gen(function* ($) {
12
- const ts = yield* $(T.service(AST.TypeScriptApi));
9
+ apply: (ts, program) => (sourceFile, textRange) => {
13
10
  function isConvertibleDeclaration(node) {
14
11
  switch (node.kind) {
15
12
  case ts.SyntaxKind.FunctionDeclaration:
@@ -23,12 +20,10 @@ export default /*#__PURE__*/createRefactor({
23
20
  }
24
21
  return pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(isConvertibleDeclaration), Ch.head, O.map(node => ({
25
22
  description: "Toggle return type annotation",
26
- apply: T.gen(function* ($) {
27
- const program = yield* $(T.service(AST.TypeScriptProgram));
23
+ apply: changeTracker => {
28
24
  const typeChecker = program.getTypeChecker();
29
- const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
30
25
  if (node.type) {
31
- removeReturnTypeAnnotation(ts, changeTracker)(sourceFile, node);
26
+ AST.removeReturnTypeAnnotation(ts, changeTracker)(sourceFile, node);
32
27
  return;
33
28
  }
34
29
  const callableType = typeChecker.getTypeAtLocation(node);
@@ -36,9 +31,9 @@ export default /*#__PURE__*/createRefactor({
36
31
  const returnTypeNodes = returnTypes.map(type => typeChecker.typeToTypeNode(type, node, ts.NodeBuilderFlags.NoTruncation)).filter(node => !!node);
37
32
  if (returnTypeNodes.length === 0) return;
38
33
  const returnTypeNode = returnTypeNodes.length === 1 ? returnTypeNodes[0] : ts.factory.createUnionTypeNode(returnTypeNodes);
39
- addReturnTypeAnnotation(ts, changeTracker)(sourceFile, node, returnTypeNode);
40
- })
34
+ AST.addReturnTypeAnnotation(ts, changeTracker)(sourceFile, node, returnTypeNode);
35
+ }
41
36
  })));
42
- })
37
+ }
43
38
  });
44
39
  //# sourceMappingURL=toggleReturnTypeAnnotation.mjs.map