@effect/language-service 0.0.10 → 0.0.12

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 (111) hide show
  1. package/_mjs/diagnostics/definition.mjs.map +1 -1
  2. package/_mjs/diagnostics/ensureGetCallTrace.mjs +5 -8
  3. package/_mjs/diagnostics/ensureGetCallTrace.mjs.map +1 -1
  4. package/_mjs/diagnostics/noSyncWithConstant.mjs +8 -11
  5. package/_mjs/diagnostics/noSyncWithConstant.mjs.map +1 -1
  6. package/_mjs/eslint-rules/no-curry-arrow.mjs +2 -2
  7. package/_mjs/eslint-rules/no-curry-arrow.mjs.map +1 -1
  8. package/_mjs/index.mjs +24 -27
  9. package/_mjs/index.mjs.map +1 -1
  10. package/_mjs/refactors/addPipe.mjs +12 -18
  11. package/_mjs/refactors/addPipe.mjs.map +1 -1
  12. package/_mjs/refactors/asyncAwaitToGen.mjs +12 -18
  13. package/_mjs/refactors/asyncAwaitToGen.mjs.map +1 -1
  14. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs +17 -23
  15. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs.map +1 -1
  16. package/_mjs/refactors/definition.mjs.map +1 -1
  17. package/_mjs/refactors/functionToArrow.mjs +31 -36
  18. package/_mjs/refactors/functionToArrow.mjs.map +1 -1
  19. package/_mjs/refactors/noSyncWithConstant.mjs +10 -14
  20. package/_mjs/refactors/noSyncWithConstant.mjs.map +1 -1
  21. package/_mjs/refactors/removeCurryArrow.mjs +12 -18
  22. package/_mjs/refactors/removeCurryArrow.mjs.map +1 -1
  23. package/_mjs/refactors/removePipe.mjs +11 -17
  24. package/_mjs/refactors/removePipe.mjs.map +1 -1
  25. package/_mjs/refactors/toggleReturnTypeAnnotation.mjs +10 -15
  26. package/_mjs/refactors/toggleReturnTypeAnnotation.mjs.map +1 -1
  27. package/_mjs/refactors/toggleTypeAnnotation.mjs +25 -31
  28. package/_mjs/refactors/toggleTypeAnnotation.mjs.map +1 -1
  29. package/_mjs/refactors/wrapWithPipe.mjs +5 -8
  30. package/_mjs/refactors/wrapWithPipe.mjs.map +1 -1
  31. package/_mjs/{utils.mjs → utils/AST.mjs} +81 -4
  32. package/_mjs/utils/AST.mjs.map +1 -0
  33. package/_mjs/utils/Function.mjs +31 -0
  34. package/_mjs/utils/Function.mjs.map +1 -0
  35. package/_mjs/utils/Option.mjs +14 -0
  36. package/_mjs/utils/Option.mjs.map +1 -0
  37. package/_mjs/utils/ReadonlyArray.mjs +12 -0
  38. package/_mjs/utils/ReadonlyArray.mjs.map +1 -0
  39. package/diagnostics/definition.d.ts +3 -3
  40. package/diagnostics/definition.d.ts.map +1 -1
  41. package/diagnostics/definition.js.map +1 -1
  42. package/diagnostics/ensureGetCallTrace.d.ts.map +1 -1
  43. package/diagnostics/ensureGetCallTrace.js +5 -8
  44. package/diagnostics/ensureGetCallTrace.js.map +1 -1
  45. package/diagnostics/noSyncWithConstant.d.ts +1 -1
  46. package/diagnostics/noSyncWithConstant.d.ts.map +1 -1
  47. package/diagnostics/noSyncWithConstant.js +8 -11
  48. package/diagnostics/noSyncWithConstant.js.map +1 -1
  49. package/eslint-rules/no-curry-arrow.js +2 -2
  50. package/eslint-rules/no-curry-arrow.js.map +1 -1
  51. package/index.js +25 -28
  52. package/index.js.map +1 -1
  53. package/package.json +3 -5
  54. package/refactors/addPipe.d.ts.map +1 -1
  55. package/refactors/addPipe.js +12 -18
  56. package/refactors/addPipe.js.map +1 -1
  57. package/refactors/asyncAwaitToGen.d.ts.map +1 -1
  58. package/refactors/asyncAwaitToGen.js +12 -18
  59. package/refactors/asyncAwaitToGen.js.map +1 -1
  60. package/refactors/asyncAwaitToGenTryPromise.d.ts.map +1 -1
  61. package/refactors/asyncAwaitToGenTryPromise.js +17 -23
  62. package/refactors/asyncAwaitToGenTryPromise.js.map +1 -1
  63. package/refactors/definition.d.ts +7 -6
  64. package/refactors/definition.d.ts.map +1 -1
  65. package/refactors/definition.js.map +1 -1
  66. package/refactors/functionToArrow.d.ts.map +1 -1
  67. package/refactors/functionToArrow.js +31 -36
  68. package/refactors/functionToArrow.js.map +1 -1
  69. package/refactors/noSyncWithConstant.d.ts.map +1 -1
  70. package/refactors/noSyncWithConstant.js +10 -14
  71. package/refactors/noSyncWithConstant.js.map +1 -1
  72. package/refactors/removeCurryArrow.d.ts.map +1 -1
  73. package/refactors/removeCurryArrow.js +12 -18
  74. package/refactors/removeCurryArrow.js.map +1 -1
  75. package/refactors/removePipe.d.ts.map +1 -1
  76. package/refactors/removePipe.js +11 -17
  77. package/refactors/removePipe.js.map +1 -1
  78. package/refactors/toggleReturnTypeAnnotation.d.ts.map +1 -1
  79. package/refactors/toggleReturnTypeAnnotation.js +10 -15
  80. package/refactors/toggleReturnTypeAnnotation.js.map +1 -1
  81. package/refactors/toggleTypeAnnotation.d.ts.map +1 -1
  82. package/refactors/toggleTypeAnnotation.js +25 -31
  83. package/refactors/toggleTypeAnnotation.js.map +1 -1
  84. package/refactors/wrapWithPipe.d.ts.map +1 -1
  85. package/refactors/wrapWithPipe.js +5 -8
  86. package/refactors/wrapWithPipe.js.map +1 -1
  87. package/{ast.d.ts → utils/AST.d.ts} +17 -10
  88. package/utils/AST.d.ts.map +1 -0
  89. package/{utils.js → utils/AST.js} +91 -4
  90. package/utils/AST.js.map +1 -0
  91. package/utils/Function.d.ts +21 -0
  92. package/utils/Function.d.ts.map +1 -0
  93. package/utils/Function.js +37 -0
  94. package/utils/Function.js.map +1 -0
  95. package/utils/Option.d.ts +17 -0
  96. package/utils/Option.d.ts.map +1 -0
  97. package/utils/Option.js +28 -0
  98. package/utils/Option.js.map +1 -0
  99. package/utils/ReadonlyArray.d.ts +17 -0
  100. package/utils/ReadonlyArray.d.ts.map +1 -0
  101. package/utils/ReadonlyArray.js +30 -0
  102. package/utils/ReadonlyArray.js.map +1 -0
  103. package/_mjs/ast.mjs +0 -80
  104. package/_mjs/ast.mjs.map +0 -1
  105. package/_mjs/utils.mjs.map +0 -1
  106. package/ast.d.ts.map +0 -1
  107. package/ast.js +0 -100
  108. package/ast.js.map +0 -1
  109. package/utils.d.ts +0 -17
  110. package/utils.d.ts.map +0 -1
  111. package/utils.js.map +0 -1
@@ -1,34 +1,30 @@
1
- import * as T from "@effect/io/Effect";
2
- import * as AST from "@effect/language-service/ast";
3
1
  import { isEffectSyncWithConstantCall, noSyncWithConstantMethodsMap } from "@effect/language-service/diagnostics/noSyncWithConstant";
4
2
  import { createRefactor } from "@effect/language-service/refactors/definition";
5
- import { getEffectModuleIdentifier, isLiteralConstantValue } from "@effect/language-service/utils";
6
- import * as Ch from "@fp-ts/data/Chunk";
7
- import { pipe } from "@fp-ts/data/Function";
8
- import * as O from "@fp-ts/data/Option";
3
+ import * as AST from "@effect/language-service/utils/AST";
4
+ import { pipe } from "@effect/language-service/utils/Function";
5
+ import * as O from "@effect/language-service/utils/Option";
6
+ import * as Ch from "@effect/language-service/utils/ReadonlyArray";
9
7
  export default /*#__PURE__*/createRefactor({
10
8
  name: "effect/addPipe",
11
9
  description: "Rewrite using pipe",
12
- apply: (sourceFile, textRange) => T.gen(function* ($) {
13
- const ts = yield* $(T.service(AST.TypeScriptApi));
14
- const effectIdentifier = getEffectModuleIdentifier(ts)(sourceFile);
10
+ apply: ts => (sourceFile, textRange) => {
11
+ const effectIdentifier = AST.getEffectModuleIdentifier(ts)(sourceFile);
15
12
  const nodes = pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.reverse, Ch.fromIterable, Ch.filter(AST.isNodeInRange(textRange)));
16
13
  for (const methodName of Object.keys(noSyncWithConstantMethodsMap)) {
17
14
  const suggestedMethodName = noSyncWithConstantMethodsMap[methodName];
18
15
  const refactor = pipe(nodes, Ch.filter(isEffectSyncWithConstantCall(ts)(effectIdentifier, methodName)), Ch.head, O.map(node => ({
19
16
  description: `Rewrite ${methodName} to ${suggestedMethodName}`,
20
- apply: T.gen(function* ($) {
21
- const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
17
+ apply: changeTracker => {
22
18
  const arg = node.arguments[0];
23
- if (ts.isArrowFunction(arg) && isLiteralConstantValue(ts)(arg.body)) {
19
+ if (ts.isArrowFunction(arg) && AST.isLiteralConstantValue(ts)(arg.body)) {
24
20
  const newNode = ts.factory.updateCallExpression(node, ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectIdentifier), suggestedMethodName), node.typeArguments, ts.factory.createNodeArray([arg.body]));
25
21
  changeTracker.replaceNode(sourceFile, node, newNode);
26
22
  }
27
- })
23
+ }
28
24
  })));
29
25
  if (O.isSome(refactor)) return refactor;
30
26
  }
31
27
  return O.none;
32
- })
28
+ }
33
29
  });
34
30
  //# sourceMappingURL=noSyncWithConstant.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"noSyncWithConstant.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,mBAAmB;AACtC,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,SACEC,4BAA4B,EAC5BC,4BAA4B,QACvB,yDAAyD;AAChE,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,SAASC,yBAAyB,EAAEC,sBAAsB,QAAQ,gCAAgC;AAClG,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,KAC3Bd,CAAC,CAACe,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAAChB,CAAC,CAACkB,OAAO,CAACjB,GAAG,CAACkB,aAAa,CAAC,CAAC;IACjD,MAAMC,gBAAgB,GAAGf,yBAAyB,CAACY,EAAE,CAAC,CAACJ,UAAU,CAAC;IAElE,MAAMQ,KAAK,GAAGb,IAAI,CAChBP,GAAG,CAACqB,uBAAuB,CAACL,EAAE,CAAC,CAACJ,UAAU,EAAEC,SAAS,CAAC,EACtDP,EAAE,CAACgB,OAAO,EACVhB,EAAE,CAACiB,YAAY,EACfjB,EAAE,CAACkB,MAAM,CAACxB,GAAG,CAACyB,aAAa,CAACZ,SAAS,CAAC,CAAC,CACxC;IAED,KAAK,MAAMa,UAAU,IAAIC,MAAM,CAACC,IAAI,CAAC1B,4BAA4B,CAAC,EAAE;MAClE,MAAM2B,mBAAmB,GAAW3B,4BAA4B,CAACwB,UAAU,CAAE;MAC7E,MAAMI,QAAQ,GAAGvB,IAAI,CACnBa,KAAK,EACLd,EAAE,CAACkB,MAAM,CAACvB,4BAA4B,CAACe,EAAE,CAAC,CAACG,gBAAgB,EAAEO,UAAU,CAAC,CAAC,EACzEpB,EAAE,CAACyB,IAAI,EACPvB,CAAC,CAACwB,GAAG,CAAEC,IAAI,KAAM;QACfvB,WAAW,EAAE,WAAWgB,UAAU,OAAOG,mBAAmB,EAAE;QAC9DlB,KAAK,EAAEZ,CAAC,CAACe,GAAG,CAAC,WAAUC,CAAC;UACtB,MAAMmB,aAAa,GAAG,OAAOnB,CAAC,CAAChB,CAAC,CAACkB,OAAO,CAACjB,GAAG,CAACmC,gBAAgB,CAAC,CAAC;UAC/D,MAAMC,GAAG,GAAGH,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC;UAC7B,IAAIrB,EAAE,CAACsB,eAAe,CAACF,GAAG,CAAC,IAAI/B,sBAAsB,CAACW,EAAE,CAAC,CAACoB,GAAG,CAACG,IAAI,CAAC,EAAE;YACnE,MAAMC,OAAO,GAAGxB,EAAE,CAACyB,OAAO,CAACC,oBAAoB,CAC7CT,IAAI,EACJjB,EAAE,CAACyB,OAAO,CAACE,8BAA8B,CACvC3B,EAAE,CAACyB,OAAO,CAACG,gBAAgB,CAACzB,gBAAgB,CAAC,EAC7CU,mBAAmB,CACpB,EACDI,IAAI,CAACY,aAAa,EAClB7B,EAAE,CAACyB,OAAO,CAACK,eAAe,CAAC,CAACV,GAAG,CAACG,IAAI,CAAC,CAAC,CACvC;YAEDL,aAAa,CAACa,WAAW,CAACnC,UAAU,EAAEqB,IAAI,EAAEO,OAAO,CAAC;;QAExD,CAAC;OACF,CAAC,CAAC,CACJ;MACD,IAAIhC,CAAC,CAACwC,MAAM,CAAClB,QAAQ,CAAC,EAAE,OAAOA,QAAQ;;IAGzC,OAAOtB,CAAC,CAACyC,IAAI;EACf,CAAC;CACJ,CAAC","names":["T","AST","isEffectSyncWithConstantCall","noSyncWithConstantMethodsMap","createRefactor","getEffectModuleIdentifier","isLiteralConstantValue","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","effectIdentifier","nodes","getNodesContainingRange","reverse","fromIterable","filter","isNodeInRange","methodName","Object","keys","suggestedMethodName","refactor","head","map","node","changeTracker","ChangeTrackerApi","arg","arguments","isArrowFunction","body","newNode","factory","updateCallExpression","createPropertyAccessExpression","createIdentifier","typeArguments","createNodeArray","replaceNode","isSome","none"],"sourceRoot":"","sources":["../../../src/refactors/noSyncWithConstant.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"noSyncWithConstant.mjs","mappings":"AAAA,SACEA,4BAA4B,EAC5BC,4BAA4B,QACvB,yDAAyD;AAChE,SAASC,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,KAAI;IACxB,MAAMC,gBAAgB,GAAGV,GAAG,CAACW,yBAAyB,CAACJ,EAAE,CAAC,CAACC,UAAU,CAAC;IAEtE,MAAMI,KAAK,GAAGX,IAAI,CAChBD,GAAG,CAACa,uBAAuB,CAACN,EAAE,CAAC,CAACC,UAAU,EAAEC,SAAS,CAAC,EACtDN,EAAE,CAACW,OAAO,EACVX,EAAE,CAACY,YAAY,EACfZ,EAAE,CAACa,MAAM,CAAChB,GAAG,CAACiB,aAAa,CAACR,SAAS,CAAC,CAAC,CACxC;IAED,KAAK,MAAMS,UAAU,IAAIC,MAAM,CAACC,IAAI,CAACtB,4BAA4B,CAAC,EAAE;MAClE,MAAMuB,mBAAmB,GAAWvB,4BAA4B,CAACoB,UAAU,CAAE;MAC7E,MAAMI,QAAQ,GAAGrB,IAAI,CACnBW,KAAK,EACLT,EAAE,CAACa,MAAM,CAACnB,4BAA4B,CAACU,EAAE,CAAC,CAACG,gBAAgB,EAAEQ,UAAU,CAAC,CAAC,EACzEf,EAAE,CAACoB,IAAI,EACPrB,CAAC,CAACsB,GAAG,CAAEC,IAAI,KAAM;QACfpB,WAAW,EAAE,WAAWa,UAAU,OAAOG,mBAAmB,EAAE;QAC9Df,KAAK,EAAGoB,aAA2C,IAAI;UACrD,MAAMC,GAAG,GAAGF,IAAI,CAACG,SAAS,CAAC,CAAC,CAAC;UAC7B,IAAIrB,EAAE,CAACsB,eAAe,CAACF,GAAG,CAAC,IAAI3B,GAAG,CAAC8B,sBAAsB,CAACvB,EAAE,CAAC,CAACoB,GAAG,CAACI,IAAI,CAAC,EAAE;YACvE,MAAMC,OAAO,GAAGzB,EAAE,CAAC0B,OAAO,CAACC,oBAAoB,CAC7CT,IAAI,EACJlB,EAAE,CAAC0B,OAAO,CAACE,8BAA8B,CACvC5B,EAAE,CAAC0B,OAAO,CAACG,gBAAgB,CAAC1B,gBAAgB,CAAC,EAC7CW,mBAAmB,CACpB,EACDI,IAAI,CAACY,aAAa,EAClB9B,EAAE,CAAC0B,OAAO,CAACK,eAAe,CAAC,CAACX,GAAG,CAACI,IAAI,CAAC,CAAC,CACvC;YAEDL,aAAa,CAACa,WAAW,CAAC/B,UAAU,EAAEiB,IAAI,EAAEO,OAAO,CAAC;;QAExD;OACD,CAAC,CAAC,CACJ;MACD,IAAI9B,CAAC,CAACsC,MAAM,CAAClB,QAAQ,CAAC,EAAE,OAAOA,QAAQ;;IAGzC,OAAOpB,CAAC,CAACuC,IAAI;EACf;CACH,CAAC","names":["isEffectSyncWithConstantCall","noSyncWithConstantMethodsMap","createRefactor","AST","pipe","O","Ch","name","description","apply","ts","sourceFile","textRange","effectIdentifier","getEffectModuleIdentifier","nodes","getNodesContainingRange","reverse","fromIterable","filter","isNodeInRange","methodName","Object","keys","suggestedMethodName","refactor","head","map","node","changeTracker","arg","arguments","isArrowFunction","isLiteralConstantValue","body","newNode","factory","updateCallExpression","createPropertyAccessExpression","createIdentifier","typeArguments","createNodeArray","replaceNode","isSome","none"],"sourceRoot":"","sources":["../../../src/refactors/noSyncWithConstant.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 { isCurryArrow } 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/removeCurryArrow",
10
8
  description: "Remove arrow",
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(isCurryArrow(ts)), Ch.head, O.map(node => ({
14
- description: `Remove arrow ${AST.getHumanReadableName(sourceFile, node.body)}`,
15
- apply: T.gen(function* ($) {
16
- const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
17
- if (!ts.isCallExpression(node.body)) return;
18
- const newNode = node.body.expression;
19
- changeTracker.replaceNode(sourceFile, node, newNode);
20
- })
21
- })));
22
- })
9
+ apply: ts => (sourceFile, textRange) => pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(AST.isCurryArrow(ts)), Ch.head, O.map(node => ({
10
+ description: `Remove arrow ${AST.getHumanReadableName(sourceFile, node.body)}`,
11
+ apply: changeTracker => {
12
+ if (!ts.isCallExpression(node.body)) return;
13
+ const newNode = node.body.expression;
14
+ changeTracker.replaceNode(sourceFile, node, newNode);
15
+ }
16
+ })))
23
17
  });
24
18
  //# sourceMappingURL=removeCurryArrow.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"removeCurryArrow.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,mBAAmB;AACtC,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,OAAO,KAAKC,EAAE,MAAM,mBAAmB;AACvC,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,OAAO,KAAKC,CAAC,MAAM,oBAAoB;AAEvC,4BAAeJ,cAAc,CAAC;EAC5BK,IAAI,EAAE,yBAAyB;EAC/BC,WAAW,EAAE,cAAc;EAC3BC,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,YAAY,CAACW,EAAE,CAAC,CAAC,EAC3BV,EAAE,CAACe,IAAI,EACPb,CAAC,CAACc,GAAG,CAAEC,IAAI,KAAM;MACfb,WAAW,EAAE,gBAAgBP,GAAG,CAACqB,oBAAoB,CAACZ,UAAU,EAAEW,IAAI,CAACE,IAAI,CAAC,EAAE;MAC9Ed,KAAK,EAAET,CAAC,CAACY,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMW,aAAa,GAAG,OAAOX,CAAC,CAACb,CAAC,CAACe,OAAO,CAACd,GAAG,CAACwB,gBAAgB,CAAC,CAAC;QAE/D,IAAI,CAACX,EAAE,CAACY,gBAAgB,CAACL,IAAI,CAACE,IAAI,CAAC,EAAE;QACrC,MAAMI,OAAO,GAAGN,IAAI,CAACE,IAAI,CAACK,UAAU;QACpCJ,aAAa,CAACK,WAAW,CAACnB,UAAU,EAAEW,IAAI,EAAEM,OAAO,CAAC;MACtD,CAAC;KACF,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC","names":["T","AST","createRefactor","isCurryArrow","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","getNodesContainingRange","filter","head","map","node","getHumanReadableName","body","changeTracker","ChangeTrackerApi","isCallExpression","newNode","expression","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/removeCurryArrow.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"removeCurryArrow.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,yBAAyB;EAC/BC,WAAW,EAAE,cAAc;EAC3BC,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,YAAY,CAACL,EAAE,CAAC,CAAC,EAC/BJ,EAAE,CAACU,IAAI,EACPX,CAAC,CAACY,GAAG,CAAEC,IAAI,KAAM;IACfV,WAAW,EAAE,gBAAgBL,GAAG,CAACgB,oBAAoB,CAACR,UAAU,EAAEO,IAAI,CAACE,IAAI,CAAC,EAAE;IAC9EX,KAAK,EAAGY,aAAa,IAAI;MACvB,IAAI,CAACX,EAAE,CAACY,gBAAgB,CAACJ,IAAI,CAACE,IAAI,CAAC,EAAE;MACrC,MAAMG,OAAO,GAAGL,IAAI,CAACE,IAAI,CAACI,UAAU;MACpCH,aAAa,CAACI,WAAW,CAACd,UAAU,EAAEO,IAAI,EAAEK,OAAO,CAAC;IACtD;GACD,CAAC,CAAC;CAEV,CAAC","names":["createRefactor","AST","pipe","O","Ch","name","description","apply","ts","sourceFile","textRange","getNodesContainingRange","filter","isCurryArrow","head","map","node","getHumanReadableName","body","changeTracker","isCallExpression","newNode","expression","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/removeCurryArrow.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
@@ -1 +1 @@
1
- {"version":3,"file":"toggleReturnTypeAnnotation.mjs","mappings":"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","names":["T","AST","createRefactor","addReturnTypeAnnotation","removeReturnTypeAnnotation","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","isConvertibleDeclaration","node","kind","SyntaxKind","FunctionDeclaration","FunctionExpression","ArrowFunction","MethodDeclaration","getNodesContainingRange","filter","head","map","program","TypeScriptProgram","typeChecker","getTypeChecker","changeTracker","ChangeTrackerApi","type","callableType","getTypeAtLocation","returnTypes","getCallSignatures","s","getReturnType","returnTypeNodes","typeToTypeNode","NodeBuilderFlags","NoTruncation","length","returnTypeNode","factory","createUnionTypeNode"],"sourceRoot":"","sources":["../../../src/refactors/toggleReturnTypeAnnotation.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"toggleReturnTypeAnnotation.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;AASlE,4BAAeJ,cAAc,CAAC;EAC5BK,IAAI,EAAE,mCAAmC;EACzCC,WAAW,EAAE,+BAA+B;EAC5CC,KAAK,EAAE,CAACC,EAAE,EAAEC,OAAO,KACjB,CAACC,UAAU,EAAEC,SAAS,KAAI;IACxB,SAASC,wBAAwB,CAACC,IAAa;MAC7C,QAAQA,IAAI,CAACC,IAAI;QACf,KAAKN,EAAE,CAACO,UAAU,CAACC,mBAAmB;QACtC,KAAKR,EAAE,CAACO,UAAU,CAACE,kBAAkB;QACrC,KAAKT,EAAE,CAACO,UAAU,CAACG,aAAa;QAChC,KAAKV,EAAE,CAACO,UAAU,CAACI,iBAAiB;UAClC,OAAO,IAAI;QACb;UACE,OAAO,KAAK;MAAA;IAElB;IAEA,OAAOjB,IAAI,CACTD,GAAG,CAACmB,uBAAuB,CAACZ,EAAE,CAAC,CAACE,UAAU,EAAEC,SAAS,CAAC,EACtDP,EAAE,CAACiB,MAAM,CAACT,wBAAwB,CAAC,EACnCR,EAAE,CAACkB,IAAI,EACPnB,CAAC,CAACoB,GAAG,CACFV,IAAI,KAAM;MACTP,WAAW,EAAE,+BAA+B;MAC5CC,KAAK,EAAGiB,aAAa,IAAI;QACvB,MAAMC,WAAW,GAAGhB,OAAO,CAACiB,cAAc,EAAE;QAE5C,IAAIb,IAAI,CAACc,IAAI,EAAE;UACb1B,GAAG,CAAC2B,0BAA0B,CAACpB,EAAE,EAAEgB,aAAa,CAAC,CAACd,UAAU,EAAEG,IAAI,CAAC;UACnE;;QAGF,MAAMgB,YAAY,GAAGJ,WAAW,CAACK,iBAAiB,CAACjB,IAAI,CAAC;QACxD,MAAMkB,WAAW,GAAGF,YAAY,CAACG,iBAAiB,EAAE,CAACT,GAAG,CAAEU,CAAC,IAAKA,CAAC,CAACC,aAAa,EAAE,CAAC;QAClF,MAAMC,eAAe,GAAGJ,WAAW,CAACR,GAAG,CAAEI,IAAI,IAC3CF,WAAW,CAACW,cAAc,CAACT,IAAI,EAAEd,IAAI,EAAEL,EAAE,CAAC6B,gBAAgB,CAACC,YAAY,CAAC,CACzE,CAACjB,MAAM,CAAER,IAAI,IAA0B,CAAC,CAACA,IAAI,CAAC;QAC/C,IAAIsB,eAAe,CAACI,MAAM,KAAK,CAAC,EAAE;QAClC,MAAMC,cAAc,GAAGL,eAAe,CAACI,MAAM,KAAK,CAAC,GACjDJ,eAAe,CAAC,CAAC,CAAE,GACnB3B,EAAE,CAACiC,OAAO,CAACC,mBAAmB,CAACP,eAAe,CAAC;QAEjDlC,GAAG,CAAC0C,uBAAuB,CAACnC,EAAE,EAAEgB,aAAa,CAAC,CAACd,UAAU,EAAEG,IAAI,EAAE2B,cAAc,CAAC;MAClF;KACD,CAAC,CACH,CACF;EACH;CACH,CAAC","names":["createRefactor","AST","pipe","O","Ch","name","description","apply","ts","program","sourceFile","textRange","isConvertibleDeclaration","node","kind","SyntaxKind","FunctionDeclaration","FunctionExpression","ArrowFunction","MethodDeclaration","getNodesContainingRange","filter","head","map","changeTracker","typeChecker","getTypeChecker","type","removeReturnTypeAnnotation","callableType","getTypeAtLocation","returnTypes","getCallSignatures","s","getReturnType","returnTypeNodes","typeToTypeNode","NodeBuilderFlags","NoTruncation","length","returnTypeNode","factory","createUnionTypeNode","addReturnTypeAnnotation"],"sourceRoot":"","sources":["../../../src/refactors/toggleReturnTypeAnnotation.ts"],"sourcesContent":[null]}
@@ -1,37 +1,31 @@
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/toggleTypeAnnotation",
9
8
  description: "Toggle type annotation",
10
- apply: (sourceFile, textRange) => T.gen(function* ($) {
11
- const ts = yield* $(T.service(AST.TypeScriptApi));
12
- return pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isVariableDeclaration), Ch.filter(node => AST.isNodeInRange(textRange)(node.name)), Ch.filter(node => !!node.initializer), Ch.head, O.map(node => ({
13
- description: "Toggle type annotation",
14
- apply: T.gen(function* ($) {
15
- const program = yield* $(T.service(AST.TypeScriptProgram));
16
- const typeChecker = program.getTypeChecker();
17
- const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
18
- if (node.type) {
19
- changeTracker.deleteRange(sourceFile, {
20
- pos: node.name.end,
21
- end: node.type.end
22
- });
23
- return;
24
- }
25
- const initializer = node.initializer;
26
- const initializerType = typeChecker.getTypeAtLocation(initializer);
27
- const initializerTypeNode = typeChecker.typeToTypeNode(initializerType, node, ts.NodeBuilderFlags.NoTruncation);
28
- if (initializerTypeNode) {
29
- changeTracker.insertNodeAt(sourceFile, node.name.end, initializerTypeNode, {
30
- prefix: ": "
31
- });
32
- }
33
- })
34
- })));
35
- })
9
+ apply: (ts, program) => (sourceFile, textRange) => pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isVariableDeclaration), Ch.filter(node => AST.isNodeInRange(textRange)(node.name)), Ch.filter(node => !!node.initializer), Ch.head, O.map(node => ({
10
+ description: "Toggle type annotation",
11
+ apply: changeTracker => {
12
+ const typeChecker = program.getTypeChecker();
13
+ if (node.type) {
14
+ changeTracker.deleteRange(sourceFile, {
15
+ pos: node.name.end,
16
+ end: node.type.end
17
+ });
18
+ return;
19
+ }
20
+ const initializer = node.initializer;
21
+ const initializerType = typeChecker.getTypeAtLocation(initializer);
22
+ const initializerTypeNode = typeChecker.typeToTypeNode(initializerType, node, ts.NodeBuilderFlags.NoTruncation);
23
+ if (initializerTypeNode) {
24
+ changeTracker.insertNodeAt(sourceFile, node.name.end, initializerTypeNode, {
25
+ prefix: ": "
26
+ });
27
+ }
28
+ }
29
+ })))
36
30
  });
37
31
  //# sourceMappingURL=toggleTypeAnnotation.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"toggleTypeAnnotation.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,mBAAmB;AACtC,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,OAAO,KAAKC,EAAE,MAAM,mBAAmB;AACvC,SAASC,IAAI,QAAQ,sBAAsB;AAC3C,OAAO,KAAKC,CAAC,MAAM,oBAAoB;AAEvC,4BAAeH,cAAc,CAAC;EAC5BI,IAAI,EAAE,6BAA6B;EACnCC,WAAW,EAAE,wBAAwB;EACrCC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BV,CAAC,CAACW,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACZ,CAAC,CAACc,OAAO,CAACb,GAAG,CAACc,aAAa,CAAC,CAAC;IAEjD,OAAOX,IAAI,CACTH,GAAG,CAACe,uBAAuB,CAACH,EAAE,CAAC,CAACJ,UAAU,EAAEC,SAAS,CAAC,EACtDP,EAAE,CAACc,MAAM,CAACJ,EAAE,CAACK,qBAAqB,CAAC,EACnCf,EAAE,CAACc,MAAM,CAAEE,IAAI,IAAKlB,GAAG,CAACmB,aAAa,CAACV,SAAS,CAAC,CAACS,IAAI,CAACb,IAAI,CAAC,CAAC,EAC5DH,EAAE,CAACc,MAAM,CAAEE,IAAI,IAAK,CAAC,CAACA,IAAI,CAACE,WAAW,CAAC,EACvClB,EAAE,CAACmB,IAAI,EACPjB,CAAC,CAACkB,GAAG,CACFJ,IAAI,KAAM;MACTZ,WAAW,EAAE,wBAAwB;MACrCC,KAAK,EAAER,CAAC,CAACW,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMY,OAAO,GAAG,OAAOZ,CAAC,CAACZ,CAAC,CAACc,OAAO,CAACb,GAAG,CAACwB,iBAAiB,CAAC,CAAC;QAC1D,MAAMC,WAAW,GAAGF,OAAO,CAACG,cAAc,EAAE;QAC5C,MAAMC,aAAa,GAAG,OAAOhB,CAAC,CAACZ,CAAC,CAACc,OAAO,CAACb,GAAG,CAAC4B,gBAAgB,CAAC,CAAC;QAE/D,IAAIV,IAAI,CAACW,IAAI,EAAE;UACbF,aAAa,CAACG,WAAW,CAACtB,UAAU,EAAE;YAAEuB,GAAG,EAAEb,IAAI,CAACb,IAAI,CAAC2B,GAAG;YAAEA,GAAG,EAAEd,IAAI,CAACW,IAAI,CAACG;UAAG,CAAE,CAAC;UACjF;;QAGF,MAAMZ,WAAW,GAAGF,IAAI,CAACE,WAAY;QACrC,MAAMa,eAAe,GAAGR,WAAW,CAACS,iBAAiB,CAACd,WAAW,CAAC;QAClE,MAAMe,mBAAmB,GAAGV,WAAW,CAACW,cAAc,CACpDH,eAAe,EACff,IAAI,EACJN,EAAE,CAACyB,gBAAgB,CAACC,YAAY,CACjC;QACD,IAAIH,mBAAmB,EAAE;UACvBR,aAAa,CAACY,YAAY,CAAC/B,UAAU,EAAEU,IAAI,CAACb,IAAI,CAAC2B,GAAG,EAAEG,mBAAmB,EAAE;YAAEK,MAAM,EAAE;UAAI,CAAE,CAAC;;MAEhG,CAAC;KACF,CAAC,CACH,CACF;EACH,CAAC;CACJ,CAAC","names":["T","AST","createRefactor","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","getNodesContainingRange","filter","isVariableDeclaration","node","isNodeInRange","initializer","head","map","program","TypeScriptProgram","typeChecker","getTypeChecker","changeTracker","ChangeTrackerApi","type","deleteRange","pos","end","initializerType","getTypeAtLocation","initializerTypeNode","typeToTypeNode","NodeBuilderFlags","NoTruncation","insertNodeAt","prefix"],"sourceRoot":"","sources":["../../../src/refactors/toggleTypeAnnotation.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"toggleTypeAnnotation.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,6BAA6B;EACnCC,WAAW,EAAE,wBAAwB;EACrCC,KAAK,EAAE,CAACC,EAAE,EAAEC,OAAO,KACjB,CAACC,UAAU,EAAEC,SAAS,KACpBT,IAAI,CACFD,GAAG,CAACW,uBAAuB,CAACJ,EAAE,CAAC,CAACE,UAAU,EAAEC,SAAS,CAAC,EACtDP,EAAE,CAACS,MAAM,CAACL,EAAE,CAACM,qBAAqB,CAAC,EACnCV,EAAE,CAACS,MAAM,CAAEE,IAAI,IAAKd,GAAG,CAACe,aAAa,CAACL,SAAS,CAAC,CAACI,IAAI,CAACV,IAAI,CAAC,CAAC,EAC5DD,EAAE,CAACS,MAAM,CAAEE,IAAI,IAAK,CAAC,CAACA,IAAI,CAACE,WAAW,CAAC,EACvCb,EAAE,CAACc,IAAI,EACPf,CAAC,CAACgB,GAAG,CACFJ,IAAI,KAAM;IACTT,WAAW,EAAE,wBAAwB;IACrCC,KAAK,EAAGa,aAAa,IAAI;MACvB,MAAMC,WAAW,GAAGZ,OAAO,CAACa,cAAc,EAAE;MAE5C,IAAIP,IAAI,CAACQ,IAAI,EAAE;QACbH,aAAa,CAACI,WAAW,CAACd,UAAU,EAAE;UAAEe,GAAG,EAAEV,IAAI,CAACV,IAAI,CAACqB,GAAG;UAAEA,GAAG,EAAEX,IAAI,CAACQ,IAAI,CAACG;QAAG,CAAE,CAAC;QACjF;;MAGF,MAAMT,WAAW,GAAGF,IAAI,CAACE,WAAY;MACrC,MAAMU,eAAe,GAAGN,WAAW,CAACO,iBAAiB,CAACX,WAAW,CAAC;MAClE,MAAMY,mBAAmB,GAAGR,WAAW,CAACS,cAAc,CACpDH,eAAe,EACfZ,IAAI,EACJP,EAAE,CAACuB,gBAAgB,CAACC,YAAY,CACjC;MACD,IAAIH,mBAAmB,EAAE;QACvBT,aAAa,CAACa,YAAY,CAACvB,UAAU,EAAEK,IAAI,CAACV,IAAI,CAACqB,GAAG,EAAEG,mBAAmB,EAAE;UAAEK,MAAM,EAAE;QAAI,CAAE,CAAC;;IAEhG;GACD,CAAC,CACH;CAER,CAAC","names":["createRefactor","AST","pipe","O","Ch","name","description","apply","ts","program","sourceFile","textRange","getNodesContainingRange","filter","isVariableDeclaration","node","isNodeInRange","initializer","head","map","changeTracker","typeChecker","getTypeChecker","type","deleteRange","pos","end","initializerType","getTypeAtLocation","initializerTypeNode","typeToTypeNode","NodeBuilderFlags","NoTruncation","insertNodeAt","prefix"],"sourceRoot":"","sources":["../../../src/refactors/toggleTypeAnnotation.ts"],"sourcesContent":[null]}
@@ -1,20 +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 * as O from "@fp-ts/data/Option";
2
+ import * as O from "@effect/language-service/utils/Option";
5
3
  export default /*#__PURE__*/createRefactor({
6
4
  name: "effect/wrapWithPipe",
7
5
  description: "Wrap with pipe",
8
- apply: (sourceFile, textRange) => T.sync(() => {
6
+ apply: () => (sourceFile, textRange) => {
9
7
  if (textRange.end - textRange.pos === 0) return O.none;
10
8
  return O.some({
11
9
  description: `Wrap with pipe(...)`,
12
- apply: T.gen(function* ($) {
13
- const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
10
+ apply: changeTracker => {
14
11
  changeTracker.insertText(sourceFile, textRange.pos, "pipe(");
15
12
  changeTracker.insertText(sourceFile, textRange.end, ")");
16
- })
13
+ }
17
14
  });
18
- })
15
+ }
19
16
  });
20
17
  //# sourceMappingURL=wrapWithPipe.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"wrapWithPipe.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,mBAAmB;AACtC,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,OAAO,KAAKC,CAAC,MAAM,oBAAoB;AAEvC,4BAAeD,cAAc,CAAC;EAC5BE,IAAI,EAAE,qBAAqB;EAC3BC,WAAW,EAAE,gBAAgB;EAC7BC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BR,CAAC,CAACS,IAAI,CAAC,MAAK;IACV,IAAID,SAAS,CAACE,GAAG,GAAGF,SAAS,CAACG,GAAG,KAAK,CAAC,EAAE,OAAOR,CAAC,CAACS,IAAI;IAEtD,OAAOT,CAAC,CAACU,IAAI,CAAC;MACZR,WAAW,EAAE,qBAAqB;MAClCC,KAAK,EAAEN,CAAC,CAACc,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMC,aAAa,GAAG,OAAOD,CAAC,CAACf,CAAC,CAACiB,OAAO,CAAChB,GAAG,CAACiB,gBAAgB,CAAC,CAAC;QAC/DF,aAAa,CAACG,UAAU,CAACZ,UAAU,EAAEC,SAAS,CAACG,GAAG,EAAE,OAAO,CAAC;QAC5DK,aAAa,CAACG,UAAU,CAACZ,UAAU,EAAEC,SAAS,CAACE,GAAG,EAAE,GAAG,CAAC;MAC1D,CAAC;KACF,CAAC;EACJ,CAAC;CACJ,CAAC","names":["T","AST","createRefactor","O","name","description","apply","sourceFile","textRange","sync","end","pos","none","some","gen","$","changeTracker","service","ChangeTrackerApi","insertText"],"sourceRoot":"","sources":["../../../src/refactors/wrapWithPipe.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"wrapWithPipe.mjs","mappings":"AAAA,SAASA,cAAc,QAAQ,+CAA+C;AAC9E,OAAO,KAAKC,CAAC,MAAM,uCAAuC;AAE1D,4BAAeD,cAAc,CAAC;EAC5BE,IAAI,EAAE,qBAAqB;EAC3BC,WAAW,EAAE,gBAAgB;EAC7BC,KAAK,EAAE,MACL,CAACC,UAAU,EAAEC,SAAS,KAAI;IACxB,IAAIA,SAAS,CAACC,GAAG,GAAGD,SAAS,CAACE,GAAG,KAAK,CAAC,EAAE,OAAOP,CAAC,CAACQ,IAAI;IAEtD,OAAOR,CAAC,CAACS,IAAI,CAAC;MACZP,WAAW,EAAE,qBAAqB;MAClCC,KAAK,EAAGO,aAAa,IAAI;QACvBA,aAAa,CAACC,UAAU,CAACP,UAAU,EAAEC,SAAS,CAACE,GAAG,EAAE,OAAO,CAAC;QAC5DG,aAAa,CAACC,UAAU,CAACP,UAAU,EAAEC,SAAS,CAACC,GAAG,EAAE,GAAG,CAAC;MAC1D;KACD,CAAC;EACJ;CACH,CAAC","names":["createRefactor","O","name","description","apply","sourceFile","textRange","end","pos","none","some","changeTracker","insertText"],"sourceRoot":"","sources":["../../../src/refactors/wrapWithPipe.ts"],"sourcesContent":[null]}
@@ -1,6 +1,83 @@
1
- import * as Ch from "@fp-ts/data/Chunk";
2
- import { pipe } from "@fp-ts/data/Function";
3
- import * as O from "@fp-ts/data/Option";
1
+ import { pipe } from "@effect/language-service/utils/Function";
2
+ import * as O from "@effect/language-service/utils/Option";
3
+ import * as Ch from "@effect/language-service/utils/ReadonlyArray";
4
+ export class NoSuchSourceFile {
5
+ constructor(fileName) {
6
+ this.fileName = fileName;
7
+ this._tag = "NoSuchSourceFile";
8
+ }
9
+ }
10
+ export function getSourceFile(program) {
11
+ return fileName => {
12
+ const sourceFile = program.getSourceFile(fileName);
13
+ if (!sourceFile) {
14
+ throw new NoSuchSourceFile(fileName);
15
+ }
16
+ return sourceFile;
17
+ };
18
+ }
19
+ export function hasModifier(ts) {
20
+ return (node, kind) => !!(ts.getCombinedModifierFlags(node) & kind);
21
+ }
22
+ /**
23
+ * Gets the closest node that contains given TextRange
24
+ */
25
+ export function getNodesContainingRange(ts) {
26
+ return (sourceFile, textRange) => {
27
+ const precedingToken = ts.findPrecedingToken(textRange.pos, sourceFile);
28
+ if (!precedingToken) return Ch.empty;
29
+ let result = Ch.empty;
30
+ let parent = precedingToken;
31
+ while (parent) {
32
+ result = pipe(result, Ch.append(parent));
33
+ parent = parent.parent;
34
+ }
35
+ return result;
36
+ };
37
+ }
38
+ /**
39
+ * Ensures value is a text range
40
+ */
41
+ export function toTextRange(positionOrRange) {
42
+ return typeof positionOrRange === "number" ? {
43
+ end: positionOrRange,
44
+ pos: positionOrRange
45
+ } : positionOrRange;
46
+ }
47
+ export function getHumanReadableName(sourceFile, node) {
48
+ const text = node.getText(sourceFile);
49
+ return text.length > 10 ? text.substring(0, 10) + "..." : text;
50
+ }
51
+ export function collectAll(ts) {
52
+ return (rootNode, test) => {
53
+ let result = Ch.empty;
54
+ function visitor(node) {
55
+ if (test(node)) result = pipe(result, Ch.append(node));
56
+ ts.forEachChild(node, visitor);
57
+ }
58
+ visitor(rootNode);
59
+ return result;
60
+ };
61
+ }
62
+ export function getRelevantTokens(ts) {
63
+ return (position, sourceFile) => {
64
+ const previousToken = ts.findPrecedingToken(position, sourceFile);
65
+ if (previousToken && position <= previousToken.end && (ts.isMemberName(previousToken) || ts.isKeyword(previousToken.kind))) {
66
+ const contextToken = ts.findPrecedingToken(previousToken.getFullStart(), sourceFile, /*startNode*/undefined); // TODO: GH#18217
67
+ return {
68
+ contextToken: O.some(contextToken),
69
+ previousToken: O.some(previousToken)
70
+ };
71
+ }
72
+ return {
73
+ contextToken: O.fromNullable(previousToken),
74
+ previousToken: O.fromNullable(previousToken)
75
+ };
76
+ };
77
+ }
78
+ export function isNodeInRange(textRange) {
79
+ return node => node.pos <= textRange.pos && node.end >= textRange.end;
80
+ }
4
81
  export function isPipeCall(ts) {
5
82
  return node => {
6
83
  if (!ts.isCallExpression(node)) return false;
@@ -156,4 +233,4 @@ export function removeReturnTypeAnnotation(ts, changes) {
156
233
  export function getEffectModuleIdentifier(ts) {
157
234
  return sourceFile => pipe(findModuleImportIdentifierName(ts)(sourceFile, "@effect/io/Effect"), O.orElse(findModuleImportIdentifierName(ts)(sourceFile, "@effect/io/Effect")), O.getOrElse(() => "Effect"));
158
235
  }
159
- //# sourceMappingURL=utils.mjs.map
236
+ //# sourceMappingURL=AST.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AST.mjs","mappings":"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","names":["pipe","O","Ch","NoSuchSourceFile","constructor","fileName","getSourceFile","program","sourceFile","hasModifier","ts","node","kind","getCombinedModifierFlags","getNodesContainingRange","textRange","precedingToken","findPrecedingToken","pos","empty","result","parent","append","toTextRange","positionOrRange","end","getHumanReadableName","text","getText","length","substring","collectAll","rootNode","test","visitor","forEachChild","getRelevantTokens","position","previousToken","isMemberName","isKeyword","contextToken","getFullStart","undefined","some","fromNullable","isNodeInRange","isPipeCall","isCallExpression","expression","isIdentifier","asPipeableCallExpression","none","arguments","arg","isArrowFunction","isStringLiteral","isNumericLiteral","asPipeArguments","initialNode","currentNode","isSome","value","maybePipeable","isNone","exp","reverse","isPipeableCallExpression","isCombinatorCall","moduleIdentifier","moduleMethodName","left","isPropertyAccessExpression","leftModule","leftName","name","findModuleImportIdentifierName","moduleName","isImportDeclaration","moduleSpecifier","importClause","namedBindings","isNamespaceImport","isCurryArrow","arrow","parameters","parameter","parameterName","body","args","identifier","isLiteralConstantValue","SyntaxKind","TrueKeyword","FalseKeyword","NullKeyword","transformAsyncAwaitToEffectGen","effectName","onAwait","_","isAwaitExpression","visitEachChild","nullTransformationContext","factory","createYieldExpression","createToken","AsteriskToken","createCallExpression","createIdentifier","generatorBody","generator","createFunctionExpression","createParameterDeclaration","effectGenCallExp","createPropertyAccessExpression","currentFlags","ModifierFlags","Async","newModifiers","createModifiersFromModifierFlags","createArrowFunction","typeParameters","equalsGreaterThanToken","newBody","createBlock","createReturnStatement","isFunctionDeclaration","createFunctionDeclaration","asteriskToken","addReturnTypeAnnotation","changes","declaration","typeNode","closeParen","findChildOfKind","CloseParenToken","needParens","endNode","insertNodeBefore","OpenParenToken","insertNodeAfter","insertNodeAt","prefix","removeReturnTypeAnnotation","type","deleteRange","getEffectModuleIdentifier","orElse","getOrElse"],"sourceRoot":"","sources":["../../../src/utils/AST.ts"],"sourcesContent":[null]}
@@ -0,0 +1,31 @@
1
+ export function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {
2
+ switch (arguments.length) {
3
+ case 1:
4
+ return a;
5
+ case 2:
6
+ return ab(a);
7
+ case 3:
8
+ return bc(ab(a));
9
+ case 4:
10
+ return cd(bc(ab(a)));
11
+ case 5:
12
+ return de(cd(bc(ab(a))));
13
+ case 6:
14
+ return ef(de(cd(bc(ab(a)))));
15
+ case 7:
16
+ return fg(ef(de(cd(bc(ab(a))))));
17
+ case 8:
18
+ return gh(fg(ef(de(cd(bc(ab(a)))))));
19
+ case 9:
20
+ return hi(gh(fg(ef(de(cd(bc(ab(a))))))));
21
+ default:
22
+ {
23
+ let ret = arguments[0];
24
+ for (let i = 1; i < arguments.length; i++) {
25
+ ret = arguments[i](ret);
26
+ }
27
+ return ret;
28
+ }
29
+ }
30
+ }
31
+ //# sourceMappingURL=Function.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Function.mjs","mappings":"AAiPA,OAAM,SAAUA,IAAI,CAClBC,CAAU,EACVC,EAAa,EACbC,EAAa,EACbC,EAAa,EACbC,EAAa,EACbC,EAAa,EACbC,EAAa,EACbC,EAAa,EACbC,EAAa;EAEb,QAAQC,SAAS,CAACC,MAAM;IACtB,KAAK,CAAC;MACJ,OAAOV,CAAC;IACV,KAAK,CAAC;MACJ,OAAOC,EAAG,CAACD,CAAC,CAAC;IACf,KAAK,CAAC;MACJ,OAAOE,EAAG,CAACD,EAAG,CAACD,CAAC,CAAC,CAAC;IACpB,KAAK,CAAC;MACJ,OAAOG,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,CAAC,CAAC,CAAC,CAAC;IACzB,KAAK,CAAC;MACJ,OAAOI,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,KAAK,CAAC;MACJ,OAAOK,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC;MACJ,OAAOM,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,KAAK,CAAC;MACJ,OAAOO,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,KAAK,CAAC;MACJ,OAAOQ,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,EAAG,CAACD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD;MAAS;QACP,IAAIW,GAAG,GAAGF,SAAS,CAAC,CAAC,CAAC;QACtB,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,SAAS,CAACC,MAAM,EAAEE,CAAC,EAAE,EAAE;UACzCD,GAAG,GAAGF,SAAS,CAACG,CAAC,CAAC,CAACD,GAAG,CAAC;;QAEzB,OAAOA,GAAG;;EACX;AAEL","names":["pipe","a","ab","bc","cd","de","ef","fg","gh","hi","arguments","length","ret","i"],"sourceRoot":"","sources":["../../../src/utils/Function.ts"],"sourcesContent":[null]}
@@ -0,0 +1,14 @@
1
+ export const none = {
2
+ _tag: "None"
3
+ };
4
+ export const some = value => ({
5
+ _tag: "Some",
6
+ value
7
+ });
8
+ export const isNone = fa => fa._tag === "None";
9
+ export const isSome = fa => fa._tag === "Some";
10
+ export const map = f => self => isNone(self) ? none : some(f(self.value));
11
+ export const fromNullable = fa => typeof fa === "undefined" || fa === null ? none : some(fa);
12
+ export const orElse = alt => self => isNone(self) ? alt : self;
13
+ export const getOrElse = alt => self => isNone(self) ? alt() : self.value;
14
+ //# sourceMappingURL=Option.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Option.mjs","mappings":"AAWA,OAAO,MAAMA,IAAI,GAAkB;EAAEC,IAAI,EAAE;AAAM,CAAE;AAEnD,OAAO,MAAMC,IAAI,GAA4BC,KAAK,KAAM;EACtDF,IAAI,EAAE,MAAM;EACZE;CACD,CAAC;AAEF,OAAO,MAAMC,MAAM,GAAOC,EAAa,IAAiBA,EAAE,CAACJ,IAAI,KAAK,MAAM;AAE1E,OAAO,MAAMK,MAAM,GAAOD,EAAa,IAAoBA,EAAE,CAACJ,IAAI,KAAK,MAAM;AAE7E,OAAO,MAAMM,GAAG,GAAUC,CAAc,IAAMC,IAAe,IAAgBL,MAAM,CAACK,IAAI,CAAC,GAAGT,IAAI,GAAGE,IAAI,CAACM,CAAC,CAACC,IAAI,CAACN,KAAK,CAAC,CAAC;AAEtH,OAAO,MAAMO,YAAY,GAAOL,EAAwB,IACtD,OAAOA,EAAE,KAAK,WAAW,IAAIA,EAAE,KAAK,IAAI,GAAGL,IAAI,GAAGE,IAAI,CAACG,EAAE,CAAC;AAE5D,OAAO,MAAMM,MAAM,GAAOC,GAAc,IAASH,IAAe,IAAoBL,MAAM,CAACK,IAAI,CAAC,GAAGG,GAAG,GAAGH,IAAI;AAE7G,OAAO,MAAMI,SAAS,GAAOD,GAAY,IAAMH,IAAe,IAAQL,MAAM,CAACK,IAAI,CAAC,GAAGG,GAAG,EAAE,GAAGH,IAAI,CAACN,KAAK","names":["none","_tag","some","value","isNone","fa","isSome","map","f","self","fromNullable","orElse","alt","getOrElse"],"sourceRoot":"","sources":["../../../src/utils/Option.ts"],"sourcesContent":[null]}
@@ -0,0 +1,12 @@
1
+ import * as O from "@effect/language-service/utils/Option";
2
+ export const fromIterable = values => Array.from(values);
3
+ export const map = f => fa => fa.map(f);
4
+ export const empty = /*#__PURE__*/fromIterable([]);
5
+ export const isEmpty = self => self.length === 0;
6
+ export const append = last => self => [...self, last];
7
+ export const concat = last => self => [...self, ...last];
8
+ export const reverse = self => self.length <= 1 ? self : self.slice().reverse();
9
+ export const head = self => self.length === 0 ? O.none : O.some(self[0]);
10
+ export const filter = f => self => self.filter(f);
11
+ export const join = glue => self => self.join(glue);
12
+ //# sourceMappingURL=ReadonlyArray.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadonlyArray.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,uCAAuC;AAI1D,OAAO,MAAMC,YAAY,GAAOC,MAAmB,IAAuBC,KAAK,CAACC,IAAI,CAACF,MAAM,CAAC;AAE5F,OAAO,MAAMG,GAAG,GAAUC,CAAc,IAAMC,EAAoB,IAAuBA,EAAE,CAACF,GAAG,CAACC,CAAC,CAAC;AAElG,OAAO,MAAME,KAAK,gBAAGP,YAAY,CAAQ,EAAE,CAAC;AAE5C,OAAO,MAAMQ,OAAO,GAClBC,IAAsB,IACVA,IAAI,CAACC,MAAM,KAAK,CAAC;AAE/B,OAAO,MAAMC,MAAM,GACjBC,IAAO,IACAH,IAAsB,IAA2B,CAAC,GAAGA,IAAI,EAAEG,IAAI,CAAQ;AAEhF,OAAO,MAAMC,MAAM,GACjBD,IAAsB,IACfH,IAAsB,IAA2B,CAAC,GAAGA,IAAI,EAAE,GAAGG,IAAI,CAAQ;AAEnF,OAAO,MAAME,OAAO,GAClBL,IAAsB,IACAA,IAAI,CAACC,MAAM,IAAI,CAAC,GAAGD,IAAI,GAAGA,IAAI,CAACM,KAAK,EAAE,CAACD,OAAO,EAAG;AAEzE,OAAO,MAAME,IAAI,GACfP,IAAsB,IACNA,IAAI,CAACC,MAAM,KAAK,CAAC,GAAGX,CAAC,CAACkB,IAAI,GAAGlB,CAAC,CAACmB,IAAI,CAACT,IAAI,CAAC,CAAC,CAAC,CAAC;AAE9D,OAAO,MAAMU,MAAM,GAKdd,CAAsB,IAAMI,IAAwB,IAAKA,IAAI,CAACU,MAAM,CAACd,CAAC,CAAC;AAE5E,OAAO,MAAMe,IAAI,GACfC,IAAY,IACLZ,IAAsB,IAAaA,IAAI,CAACW,IAAI,CAACC,IAAI,CAAC","names":["O","fromIterable","values","Array","from","map","f","fa","empty","isEmpty","self","length","append","last","concat","reverse","slice","head","none","some","filter","join","glue"],"sourceRoot":"","sources":["../../../src/utils/ReadonlyArray.ts"],"sourcesContent":[null]}
@@ -1,5 +1,5 @@
1
- import type * as T from "@effect/io/Effect";
2
- import type * as Ch from "@fp-ts/data/Chunk";
1
+ import type * as AST from "@effect/language-service/utils/AST";
2
+ import type * as Ch from "@effect/language-service/utils/ReadonlyArray";
3
3
  import type ts from "typescript/lib/tsserverlibrary";
4
4
  export interface DiagnosticDefinitionMessage {
5
5
  node: ts.Node;
@@ -9,7 +9,7 @@ export type DiagnosticDefinitionMessageCategory = "none" | "suggestion" | "warni
9
9
  export interface DiagnosticDefinition {
10
10
  code: number;
11
11
  category: DiagnosticDefinitionMessageCategory;
12
- apply: <E>(sourceFile: ts.SourceFile) => T.Effect<typeof ts | ts.Program, E, Ch.Chunk<DiagnosticDefinitionMessage>>;
12
+ apply: (ts: AST.TypeScriptApi, program: ts.Program) => (sourceFile: ts.SourceFile) => Ch.Chunk<DiagnosticDefinitionMessage>;
13
13
  }
14
14
  export declare function createDiagnostic(definition: DiagnosticDefinition): DiagnosticDefinition;
15
15
  //# sourceMappingURL=definition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,mCAAmC,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,CAAA;AAE7F,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,mCAAmC,CAAA;IAC7C,KAAK,EAAE,CAAC,CAAC,EACP,UAAU,EAAE,EAAE,CAAC,UAAU,KACtB,CAAC,CAAC,MAAM,CACX,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EACtB,CAAC,EACD,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CACtC,CAAA;CACF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,wBAEhE"}
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,oCAAoC,CAAA;AAC9D,OAAO,KAAK,KAAK,EAAE,MAAM,8CAA8C,CAAA;AAEvE,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,mCAAmC,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,CAAA;AAE7F,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,mCAAmC,CAAA;IAC7C,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,CACrD,UAAU,EAAE,EAAE,CAAC,UAAU,KACtB,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;CAC3C;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,wBAEhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","mappings":";;;;;;AAwBM,SAAUA,gBAAgB,CAACC,UAAgC;EAC/D,OAAOA,UAAU;AACnB","names":["createDiagnostic","definition"],"sourceRoot":"","sources":["../../../src/diagnostics/definition.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"definition.js","mappings":";;;;;;AAoBM,SAAUA,gBAAgB,CAACC,UAAgC;EAC/D,OAAOA,UAAU;AACnB","names":["createDiagnostic","definition"],"sourceRoot":"","sources":["../../../src/diagnostics/definition.ts"],"sourcesContent":[null]}