@effect/language-service 0.0.0

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 (116) hide show
  1. package/README.md +59 -0
  2. package/_mjs/ast.mjs +80 -0
  3. package/_mjs/ast.mjs.map +1 -0
  4. package/_mjs/config.mjs +24 -0
  5. package/_mjs/config.mjs.map +1 -0
  6. package/_mjs/diagnostics/definition.mjs +4 -0
  7. package/_mjs/diagnostics/definition.mjs.map +1 -0
  8. package/_mjs/diagnostics/ensureGetCallTrace.mjs +49 -0
  9. package/_mjs/diagnostics/ensureGetCallTrace.mjs.map +1 -0
  10. package/_mjs/diagnostics/index.mjs +9 -0
  11. package/_mjs/diagnostics/index.mjs.map +1 -0
  12. package/_mjs/diagnostics/noSyncWithConstant.mjs +36 -0
  13. package/_mjs/diagnostics/noSyncWithConstant.mjs.map +1 -0
  14. package/_mjs/diagnostics/removeCurryArrow.mjs +18 -0
  15. package/_mjs/diagnostics/removeCurryArrow.mjs.map +1 -0
  16. package/_mjs/index.mjs +111 -0
  17. package/_mjs/index.mjs.map +1 -0
  18. package/_mjs/refactors/addPipe.mjs +24 -0
  19. package/_mjs/refactors/addPipe.mjs.map +1 -0
  20. package/_mjs/refactors/asyncAwaitToGen.mjs +25 -0
  21. package/_mjs/refactors/asyncAwaitToGen.mjs.map +1 -0
  22. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs +30 -0
  23. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs.map +1 -0
  24. package/_mjs/refactors/definition.mjs +4 -0
  25. package/_mjs/refactors/definition.mjs.map +1 -0
  26. package/_mjs/refactors/functionToArrow.mjs +43 -0
  27. package/_mjs/refactors/functionToArrow.mjs.map +1 -0
  28. package/_mjs/refactors/index.mjs +19 -0
  29. package/_mjs/refactors/index.mjs.map +1 -0
  30. package/_mjs/refactors/removeCurryArrow.mjs +24 -0
  31. package/_mjs/refactors/removeCurryArrow.mjs.map +1 -0
  32. package/_mjs/refactors/removePipe.mjs +23 -0
  33. package/_mjs/refactors/removePipe.mjs.map +1 -0
  34. package/_mjs/refactors/toggleReturnTypeAnnotation.mjs +44 -0
  35. package/_mjs/refactors/toggleReturnTypeAnnotation.mjs.map +1 -0
  36. package/_mjs/refactors/toggleTypeAnnotation.mjs +37 -0
  37. package/_mjs/refactors/toggleTypeAnnotation.mjs.map +1 -0
  38. package/_mjs/utils.mjs +146 -0
  39. package/_mjs/utils.mjs.map +1 -0
  40. package/ast.d.ts +116 -0
  41. package/ast.d.ts.map +1 -0
  42. package/ast.js +100 -0
  43. package/ast.js.map +1 -0
  44. package/config.d.ts +10 -0
  45. package/config.d.ts.map +1 -0
  46. package/config.js +31 -0
  47. package/config.js.map +1 -0
  48. package/diagnostics/definition.d.ts +15 -0
  49. package/diagnostics/definition.d.ts.map +1 -0
  50. package/diagnostics/definition.js +10 -0
  51. package/diagnostics/definition.js.map +1 -0
  52. package/diagnostics/ensureGetCallTrace.d.ts +3 -0
  53. package/diagnostics/ensureGetCallTrace.d.ts.map +1 -0
  54. package/diagnostics/ensureGetCallTrace.js +58 -0
  55. package/diagnostics/ensureGetCallTrace.js.map +1 -0
  56. package/diagnostics/index.d.ts +7 -0
  57. package/diagnostics/index.d.ts.map +1 -0
  58. package/diagnostics/index.js +17 -0
  59. package/diagnostics/index.js.map +1 -0
  60. package/diagnostics/noSyncWithConstant.d.ts +3 -0
  61. package/diagnostics/noSyncWithConstant.d.ts.map +1 -0
  62. package/diagnostics/noSyncWithConstant.js +45 -0
  63. package/diagnostics/noSyncWithConstant.js.map +1 -0
  64. package/diagnostics/removeCurryArrow.d.ts +3 -0
  65. package/diagnostics/removeCurryArrow.d.ts.map +1 -0
  66. package/diagnostics/removeCurryArrow.js +27 -0
  67. package/diagnostics/removeCurryArrow.js.map +1 -0
  68. package/index.d.ts +2 -0
  69. package/index.d.ts.map +1 -0
  70. package/index.js +116 -0
  71. package/index.js.map +1 -0
  72. package/package.json +43 -0
  73. package/refactors/addPipe.d.ts +3 -0
  74. package/refactors/addPipe.d.ts.map +1 -0
  75. package/refactors/addPipe.js +33 -0
  76. package/refactors/addPipe.js.map +1 -0
  77. package/refactors/asyncAwaitToGen.d.ts +3 -0
  78. package/refactors/asyncAwaitToGen.d.ts.map +1 -0
  79. package/refactors/asyncAwaitToGen.js +34 -0
  80. package/refactors/asyncAwaitToGen.js.map +1 -0
  81. package/refactors/asyncAwaitToGenTryPromise.d.ts +3 -0
  82. package/refactors/asyncAwaitToGenTryPromise.d.ts.map +1 -0
  83. package/refactors/asyncAwaitToGenTryPromise.js +39 -0
  84. package/refactors/asyncAwaitToGenTryPromise.js.map +1 -0
  85. package/refactors/definition.d.ts +13 -0
  86. package/refactors/definition.d.ts.map +1 -0
  87. package/refactors/definition.js +10 -0
  88. package/refactors/definition.js.map +1 -0
  89. package/refactors/functionToArrow.d.ts +3 -0
  90. package/refactors/functionToArrow.d.ts.map +1 -0
  91. package/refactors/functionToArrow.js +52 -0
  92. package/refactors/functionToArrow.js.map +1 -0
  93. package/refactors/index.d.ts +12 -0
  94. package/refactors/index.d.ts.map +1 -0
  95. package/refactors/index.js +27 -0
  96. package/refactors/index.js.map +1 -0
  97. package/refactors/removeCurryArrow.d.ts +3 -0
  98. package/refactors/removeCurryArrow.d.ts.map +1 -0
  99. package/refactors/removeCurryArrow.js +33 -0
  100. package/refactors/removeCurryArrow.js.map +1 -0
  101. package/refactors/removePipe.d.ts +3 -0
  102. package/refactors/removePipe.d.ts.map +1 -0
  103. package/refactors/removePipe.js +32 -0
  104. package/refactors/removePipe.js.map +1 -0
  105. package/refactors/toggleReturnTypeAnnotation.d.ts +3 -0
  106. package/refactors/toggleReturnTypeAnnotation.d.ts.map +1 -0
  107. package/refactors/toggleReturnTypeAnnotation.js +53 -0
  108. package/refactors/toggleReturnTypeAnnotation.js.map +1 -0
  109. package/refactors/toggleTypeAnnotation.d.ts +3 -0
  110. package/refactors/toggleTypeAnnotation.d.ts.map +1 -0
  111. package/refactors/toggleTypeAnnotation.js +46 -0
  112. package/refactors/toggleTypeAnnotation.js.map +1 -0
  113. package/utils.d.ts +15 -0
  114. package/utils.d.ts.map +1 -0
  115. package/utils.js +163 -0
  116. package/utils.js.map +1 -0
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
+ var _definition = /*#__PURE__*/require("@effect/language-service/refactors/definition");
10
+ var _utils = /*#__PURE__*/require("@effect/language-service/utils");
11
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
12
+ var _Function = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
13
+ var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ var _default = /*#__PURE__*/(0, _definition.createRefactor)({
17
+ name: "effect/asyncAwaitToGenTryPromise",
18
+ description: "Convert to Effect.gen with failures",
19
+ apply: (sourceFile, textRange) => T.gen(function* ($) {
20
+ const ts = yield* $(T.service(AST.TypeScriptApi));
21
+ return (0, _Function.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 => ({
22
+ description: "Rewrite to Effect.gen with failures",
23
+ apply: T.gen(function* ($) {
24
+ const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
25
+ const importedEffectName = (0, _utils.findModuleImportIdentifierName)(ts)(sourceFile, "@effect/core/io/Effect");
26
+ const effectName = (0, _Function.pipe)(importedEffectName, O.getOrElse(() => "Effect"));
27
+ let errorCount = 0;
28
+ function createErrorADT() {
29
+ errorCount++;
30
+ return ts.factory.createObjectLiteralExpression([ts.factory.createPropertyAssignment("_tag", ts.factory.createAsExpression(ts.factory.createStringLiteral("Error" + errorCount), ts.factory.createTypeReferenceNode("const"))), ts.factory.createShorthandPropertyAssignment("error")]);
31
+ }
32
+ const newDeclaration = yield* $((0, _utils.transformAsyncAwaitToEffectGen)(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())])));
33
+ changeTracker.replaceNode(sourceFile, node, newDeclaration);
34
+ })
35
+ })));
36
+ })
37
+ });
38
+ exports.default = _default;
39
+ //# sourceMappingURL=asyncAwaitToGenTryPromise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncAwaitToGenTryPromise.js","mappings":"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","names":["name","description","apply","sourceFile","textRange","T","gen","$","ts","service","AST","TypeScriptApi","getNodesContainingRange","Ch","filter","isFunctionDeclaration","node","body","getCombinedModifierFlags","ModifierFlags","Async","head","O","map","changeTracker","ChangeTrackerApi","importedEffectName","effectName","getOrElse","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]}
@@ -0,0 +1,13 @@
1
+ import type * as T from "@effect/core/io/Effect";
2
+ import type * as O from "@tsplus/stdlib/data/Maybe";
3
+ import type ts from "typescript/lib/tsserverlibrary";
4
+ export interface RefactorDefinition {
5
+ name: string;
6
+ description: string;
7
+ apply: <E>(sourceFile: ts.SourceFile, textRange: ts.TextRange) => T.Effect<typeof ts | ts.Program, E, O.Maybe<{
8
+ description: string;
9
+ apply: T.Effect<typeof ts | ts.Program | ts.textChanges.ChangeTracker, E, void>;
10
+ }>>;
11
+ }
12
+ export declare function createRefactor(definition: RefactorDefinition): RefactorDefinition;
13
+ //# sourceMappingURL=definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/refactors/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,KAAK,CAAC,MAAM,2BAA2B,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAEpD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,CAAC,CAAC,EACP,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,SAAS,EAAE,EAAE,CAAC,SAAS,KACpB,CAAC,CAAC,MAAM,CACX,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EACtB,CAAC,EACD,CAAC,CAAC,KAAK,CAAC;QACN,WAAW,EAAE,MAAM,CAAA;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;KAChF,CAAC,CACH,CAAA;CACF;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,kBAAkB,sBAE5D"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createRefactor = createRefactor;
7
+ function createRefactor(definition) {
8
+ return definition;
9
+ }
10
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","mappings":";;;;;;AAoBM,SAAUA,cAAc,CAACC,UAA8B;EAC3D,OAAOA,UAAU;AACnB","names":["createRefactor","definition"],"sourceRoot":"","sources":["../../../src/refactors/definition.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/refactors/definition").RefactorDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=functionToArrow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionToArrow.d.ts","sourceRoot":"","sources":["../../../src/refactors/functionToArrow.ts"],"names":[],"mappings":";AAOA,wBAwEE"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
+ var _definition = /*#__PURE__*/require("@effect/language-service/refactors/definition");
10
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
11
+ var _Function = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
12
+ var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ var _default = /*#__PURE__*/(0, _definition.createRefactor)({
16
+ name: "effect/functionToArrow",
17
+ description: "Convert to arrow",
18
+ apply: (sourceFile, textRange) => T.gen(function* ($) {
19
+ const ts = yield* $(T.service(AST.TypeScriptApi));
20
+ return (0, _Function.pipe)((0, _Function.pipe)(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isFunctionDeclaration)), Ch.concat((0, _Function.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 => ({
21
+ description: "Convert to arrow",
22
+ apply: T.gen(function* ($) {
23
+ const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
24
+ const body = node.body;
25
+ let newBody = ts.factory.createBlock(body.statements);
26
+ if (body.statements.length === 1) {
27
+ const statement = body.statements[0];
28
+ if (statement && ts.isReturnStatement(statement) && statement.expression) {
29
+ newBody = statement.expression;
30
+ }
31
+ }
32
+ let arrowFlags = ts.getCombinedModifierFlags(node);
33
+ arrowFlags &= ~ts.ModifierFlags.Export;
34
+ arrowFlags &= ~ts.ModifierFlags.Default;
35
+ const arrowModifiers = ts.factory.createModifiersFromModifierFlags(arrowFlags);
36
+ const arrowFunction = ts.factory.createArrowFunction(arrowModifiers, node.typeParameters, node.parameters, undefined, ts.factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), newBody);
37
+ let constFlags = ts.getCombinedModifierFlags(node);
38
+ constFlags &= ~arrowFlags;
39
+ const constModifiers = ts.factory.createModifiersFromModifierFlags(constFlags);
40
+ let newDeclaration = node;
41
+ if (ts.isMethodDeclaration(node)) {
42
+ newDeclaration = ts.factory.createPropertyDeclaration(constModifiers, node.name, undefined, undefined, arrowFunction);
43
+ } else if (ts.isFunctionDeclaration(node)) {
44
+ newDeclaration = ts.factory.createVariableStatement(constModifiers, ts.factory.createVariableDeclarationList([ts.factory.createVariableDeclaration(node.name, undefined, undefined, arrowFunction)], ts.NodeFlags.Const));
45
+ }
46
+ changeTracker.replaceNode(sourceFile, node, newDeclaration);
47
+ })
48
+ })));
49
+ })
50
+ });
51
+ exports.default = _default;
52
+ //# sourceMappingURL=functionToArrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionToArrow.js","mappings":"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","names":["name","description","apply","sourceFile","textRange","T","gen","$","ts","service","AST","TypeScriptApi","getNodesContainingRange","Ch","filter","isFunctionDeclaration","concat","isMethodDeclaration","node","body","isNodeInRange","head","O","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]}
@@ -0,0 +1,12 @@
1
+ declare const _default: {
2
+ asyncAwaitToGen: import("./definition").RefactorDefinition;
3
+ asyncAwaitToGenTryPromise: import("./definition").RefactorDefinition;
4
+ removePipe: import("./definition").RefactorDefinition;
5
+ addPipe: import("./definition").RefactorDefinition;
6
+ removeCurryArrow: import("./definition").RefactorDefinition;
7
+ functionToArrow: import("./definition").RefactorDefinition;
8
+ toggleTypeAnnotation: import("./definition").RefactorDefinition;
9
+ toggleReturnTypeAnnotation: import("./definition").RefactorDefinition;
10
+ };
11
+ export default _default;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/refactors/index.ts"],"names":[],"mappings":";;;;;;;;;;AASA,wBASC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _addPipe = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/addPipe"));
8
+ var _asyncAwaitToGen = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/asyncAwaitToGen"));
9
+ var _asyncAwaitToGenTryPromise = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/asyncAwaitToGenTryPromise"));
10
+ var _functionToArrow = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/functionToArrow"));
11
+ var _removeCurryArrow = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/removeCurryArrow"));
12
+ var _removePipe = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/removePipe"));
13
+ var _toggleReturnTypeAnnotation = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/toggleReturnTypeAnnotation"));
14
+ var _toggleTypeAnnotation = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/toggleTypeAnnotation"));
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+ var _default = {
17
+ asyncAwaitToGen: _asyncAwaitToGen.default,
18
+ asyncAwaitToGenTryPromise: _asyncAwaitToGenTryPromise.default,
19
+ removePipe: _removePipe.default,
20
+ addPipe: _addPipe.default,
21
+ removeCurryArrow: _removeCurryArrow.default,
22
+ functionToArrow: _functionToArrow.default,
23
+ toggleTypeAnnotation: _toggleTypeAnnotation.default,
24
+ toggleReturnTypeAnnotation: _toggleReturnTypeAnnotation.default
25
+ };
26
+ exports.default = _default;
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAA0F;AAAA,eAE3E;EACbA,eAAe,EAAfA,wBAAe;EACfC,yBAAyB,EAAzBA,kCAAyB;EACzBC,UAAU,EAAVA,mBAAU;EACVC,OAAO,EAAPA,gBAAO;EACPC,gBAAgB,EAAhBA,yBAAgB;EAChBC,eAAe,EAAfA,wBAAe;EACfC,oBAAoB,EAApBA,6BAAoB;EACpBC,0BAA0B,EAA1BA;CACD;AAAA","names":["asyncAwaitToGen","asyncAwaitToGenTryPromise","removePipe","addPipe","removeCurryArrow","functionToArrow","toggleTypeAnnotation","toggleReturnTypeAnnotation"],"sourceRoot":"","sources":["../../../src/refactors/index.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/refactors/definition").RefactorDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=removeCurryArrow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeCurryArrow.d.ts","sourceRoot":"","sources":["../../../src/refactors/removeCurryArrow.ts"],"names":[],"mappings":";AAQA,wBAuBE"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
+ var _definition = /*#__PURE__*/require("@effect/language-service/refactors/definition");
10
+ var _utils = /*#__PURE__*/require("@effect/language-service/utils");
11
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
12
+ var _Function = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
13
+ var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ var _default = /*#__PURE__*/(0, _definition.createRefactor)({
17
+ name: "effect/removeCurryArrow",
18
+ description: "Remove arrow",
19
+ apply: (sourceFile, textRange) => T.gen(function* ($) {
20
+ const ts = yield* $(T.service(AST.TypeScriptApi));
21
+ return (0, _Function.pipe)(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter((0, _utils.isCurryArrow)(ts)), Ch.head, O.map(node => ({
22
+ description: `Remove arrow ${AST.getHumanReadableName(sourceFile, node.body)}`,
23
+ apply: T.gen(function* ($) {
24
+ const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
25
+ if (!ts.isCallExpression(node.body)) return;
26
+ const newNode = node.body.expression;
27
+ changeTracker.replaceNode(sourceFile, node, newNode);
28
+ })
29
+ })));
30
+ })
31
+ });
32
+ exports.default = _default;
33
+ //# sourceMappingURL=removeCurryArrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeCurryArrow.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAA8C;AAAA;AAAA,4BAE/B,8BAAc,EAAC;EAC5BA,IAAI,EAAE,yBAAyB;EAC/BC,WAAW,EAAE,cAAc;EAC3BC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BC,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACC,aAAa,CAAC,CAAC;IAEjD,OAAO,kBAAI,EACTD,GAAG,CAACE,uBAAuB,CAACJ,EAAE,CAAC,CAACL,UAAU,EAAEC,SAAS,CAAC,EACtDS,EAAE,CAACC,MAAM,CAAC,uBAAY,EAACN,EAAE,CAAC,CAAC,EAC3BK,EAAE,CAACE,IAAI,EACPC,CAAC,CAACC,GAAG,CAAEC,IAAI,KAAM;MACfjB,WAAW,EAAE,gBAAgBS,GAAG,CAACS,oBAAoB,CAAChB,UAAU,EAAEe,IAAI,CAACE,IAAI,CAAC,EAAE;MAC9ElB,KAAK,EAAEG,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMc,aAAa,GAAG,OAAOd,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACY,gBAAgB,CAAC,CAAC;QAE/D,IAAI,CAACd,EAAE,CAACe,gBAAgB,CAACL,IAAI,CAACE,IAAI,CAAC,EAAE;QACrC,MAAMI,OAAO,GAAGN,IAAI,CAACE,IAAI,CAACK,UAAU;QACpCJ,aAAa,CAACK,WAAW,CAACvB,UAAU,EAAEe,IAAI,EAAEM,OAAO,CAAC;MACtD,CAAC;KACF,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC;AAAA","names":["name","description","apply","sourceFile","textRange","T","gen","$","ts","service","AST","TypeScriptApi","getNodesContainingRange","Ch","filter","head","O","map","node","getHumanReadableName","body","changeTracker","ChangeTrackerApi","isCallExpression","newNode","expression","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/removeCurryArrow.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/refactors/definition").RefactorDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=removePipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removePipe.d.ts","sourceRoot":"","sources":["../../../src/refactors/removePipe.ts"],"names":[],"mappings":";AAQA,wBA8BE"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
+ var _definition = /*#__PURE__*/require("@effect/language-service/refactors/definition");
10
+ var _utils = /*#__PURE__*/require("@effect/language-service/utils");
11
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
12
+ var _Function = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
13
+ var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ var _default = /*#__PURE__*/(0, _definition.createRefactor)({
17
+ name: "effect/removePipe",
18
+ description: "Remove pipe call",
19
+ apply: (sourceFile, textRange) => T.gen(function* ($) {
20
+ const ts = yield* $(T.service(AST.TypeScriptApi));
21
+ return (0, _Function.pipe)(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter((0, _utils.isPipeCall)(ts)), Ch.filter(node => AST.isNodeInRange(textRange)(node.expression)), Ch.filter(node => node.arguments.length > 1), Ch.head, O.map(node => ({
22
+ description: "Remove pipe call",
23
+ apply: T.gen(function* ($) {
24
+ const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
25
+ const newNode = node.arguments.slice(1).reduce((inner, exp) => ts.factory.createCallExpression(exp, undefined, [inner]), node.arguments[0]);
26
+ changeTracker.replaceNode(sourceFile, node, newNode);
27
+ })
28
+ })));
29
+ })
30
+ });
31
+ exports.default = _default;
32
+ //# sourceMappingURL=removePipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removePipe.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAA8C;AAAA;AAAA,4BAE/B,8BAAc,EAAC;EAC5BA,IAAI,EAAE,mBAAmB;EACzBC,WAAW,EAAE,kBAAkB;EAC/BC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BC,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACC,aAAa,CAAC,CAAC;IAEjD,OAAO,kBAAI,EACTD,GAAG,CAACE,uBAAuB,CAACJ,EAAE,CAAC,CAACL,UAAU,EAAEC,SAAS,CAAC,EACtDS,EAAE,CAACC,MAAM,CAAC,qBAAU,EAACN,EAAE,CAAC,CAAC,EACzBK,EAAE,CAACC,MAAM,CAAEC,IAAI,IAAKL,GAAG,CAACM,aAAa,CAACZ,SAAS,CAAC,CAACW,IAAI,CAACE,UAAU,CAAC,CAAC,EAClEJ,EAAE,CAACC,MAAM,CACNC,IAAI,IAAKA,IAAI,CAACG,SAAS,CAACC,MAAM,GAAG,CAAC,CACpC,EACDN,EAAE,CAACO,IAAI,EACPC,CAAC,CAACC,GAAG,CAAEP,IAAI,KAAM;MACfd,WAAW,EAAE,kBAAkB;MAC/BC,KAAK,EAAEG,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMgB,aAAa,GAAG,OAAOhB,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACc,gBAAgB,CAAC,CAAC;QAE/D,MAAMC,OAAO,GAAGV,IAAI,CAACG,SAAS,CAACQ,KAAK,CAAC,CAAC,CAAC,CAACC,MAAM,CAC5C,CAACC,KAAK,EAAEC,GAAG,KAAKrB,EAAE,CAACsB,OAAO,CAACC,oBAAoB,CAACF,GAAG,EAAEG,SAAS,EAAE,CAACJ,KAAK,CAAC,CAAC,EACxEb,IAAI,CAACG,SAAS,CAAC,CAAC,CAAE,CACnB;QAEDK,aAAa,CAACU,WAAW,CAAC9B,UAAU,EAAEY,IAAI,EAAEU,OAAO,CAAC;MACtD,CAAC;KACF,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC;AAAA","names":["name","description","apply","sourceFile","textRange","T","gen","$","ts","service","AST","TypeScriptApi","getNodesContainingRange","Ch","filter","node","isNodeInRange","expression","arguments","length","head","O","map","changeTracker","ChangeTrackerApi","newNode","slice","reduce","inner","exp","factory","createCallExpression","undefined","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/removePipe.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/refactors/definition").RefactorDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=toggleReturnTypeAnnotation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleReturnTypeAnnotation.d.ts","sourceRoot":"","sources":["../../../src/refactors/toggleReturnTypeAnnotation.ts"],"names":[],"mappings":";AAeA,wBAoDE"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
+ var _definition = /*#__PURE__*/require("@effect/language-service/refactors/definition");
10
+ var _utils = /*#__PURE__*/require("@effect/language-service/utils");
11
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
12
+ var _Function = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
13
+ var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ var _default = /*#__PURE__*/(0, _definition.createRefactor)({
17
+ name: "effect/toggleReturnTypeAnnotation",
18
+ description: "Toggle return type annotation",
19
+ apply: (sourceFile, textRange) => T.gen(function* ($) {
20
+ const ts = yield* $(T.service(AST.TypeScriptApi));
21
+ function isConvertibleDeclaration(node) {
22
+ switch (node.kind) {
23
+ case ts.SyntaxKind.FunctionDeclaration:
24
+ case ts.SyntaxKind.FunctionExpression:
25
+ case ts.SyntaxKind.ArrowFunction:
26
+ case ts.SyntaxKind.MethodDeclaration:
27
+ return true;
28
+ default:
29
+ return false;
30
+ }
31
+ }
32
+ return (0, _Function.pipe)(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(isConvertibleDeclaration), Ch.head, O.map(node => ({
33
+ description: "Toggle return type annotation",
34
+ apply: T.gen(function* ($) {
35
+ const program = yield* $(T.service(AST.TypeScriptProgram));
36
+ const typeChecker = program.getTypeChecker();
37
+ const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
38
+ if (node.type) {
39
+ changeTracker.delete(sourceFile, node.type);
40
+ return;
41
+ }
42
+ const callableType = typeChecker.getTypeAtLocation(node);
43
+ const returnTypes = callableType.getCallSignatures().map(s => s.getReturnType());
44
+ const returnTypeNodes = returnTypes.map(type => typeChecker.typeToTypeNode(type, node, ts.NodeBuilderFlags.NoTruncation)).filter(node => !!node);
45
+ if (returnTypeNodes.length === 0) return;
46
+ const returnTypeNode = returnTypeNodes.length === 1 ? returnTypeNodes[0] : ts.factory.createUnionTypeNode(returnTypeNodes);
47
+ (0, _utils.addReturnTypeAnnotation)(ts, changeTracker)(sourceFile, node, returnTypeNode);
48
+ })
49
+ })));
50
+ })
51
+ });
52
+ exports.default = _default;
53
+ //# sourceMappingURL=toggleReturnTypeAnnotation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleReturnTypeAnnotation.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAA8C;AAAA;AAAA,4BAS/B,8BAAc,EAAC;EAC5BA,IAAI,EAAE,mCAAmC;EACzCC,WAAW,EAAE,+BAA+B;EAC5CC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BC,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACC,aAAa,CAAC,CAAC;IAEjD,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,OAAO,kBAAI,EACTT,GAAG,CAACU,uBAAuB,CAACZ,EAAE,CAAC,CAACL,UAAU,EAAEC,SAAS,CAAC,EACtDiB,EAAE,CAACC,MAAM,CAACV,wBAAwB,CAAC,EACnCS,EAAE,CAACE,IAAI,EACPC,CAAC,CAACC,GAAG,CACFZ,IAAI,KAAM;MACTZ,WAAW,EAAE,+BAA+B;MAC5CC,KAAK,EAAEG,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMmB,OAAO,GAAG,OAAOnB,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACiB,iBAAiB,CAAC,CAAC;QAC1D,MAAMC,WAAW,GAAGF,OAAO,CAACG,cAAc,EAAE;QAC5C,MAAMC,aAAa,GAAG,OAAOvB,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACqB,gBAAgB,CAAC,CAAC;QAE/D,IAAIlB,IAAI,CAACmB,IAAI,EAAE;UACbF,aAAa,CAACG,MAAM,CAAC9B,UAAU,EAAEU,IAAI,CAACmB,IAAI,CAAC;UAC3C;;QAGF,MAAME,YAAY,GAAGN,WAAW,CAACO,iBAAiB,CAACtB,IAAI,CAAC;QACxD,MAAMuB,WAAW,GAAGF,YAAY,CAACG,iBAAiB,EAAE,CAACZ,GAAG,CAAEa,CAAC,IAAKA,CAAC,CAACC,aAAa,EAAE,CAAC;QAClF,MAAMC,eAAe,GAAGJ,WAAW,CAACX,GAAG,CAAEO,IAAI,IAC3CJ,WAAW,CAACa,cAAc,CAACT,IAAI,EAAEnB,IAAI,EAAEL,EAAE,CAACkC,gBAAgB,CAACC,YAAY,CAAC,CACzE,CAACrB,MAAM,CAAET,IAAI,IAA0B,CAAC,CAACA,IAAI,CAAC;QAC/C,IAAI2B,eAAe,CAACI,MAAM,KAAK,CAAC,EAAE;QAClC,MAAMC,cAAc,GAAGL,eAAe,CAACI,MAAM,KAAK,CAAC,GACjDJ,eAAe,CAAC,CAAC,CAAE,GACnBhC,EAAE,CAACsC,OAAO,CAACC,mBAAmB,CAACP,eAAe,CAAC;QAEjD,kCAAuB,EAAChC,EAAE,EAAEsB,aAAa,CAAC,CAAC3B,UAAU,EAAEU,IAAI,EAAEgC,cAAc,CAAC;MAC9E,CAAC;KACF,CAAC,CACH,CACF;EACH,CAAC;CACJ,CAAC;AAAA","names":["name","description","apply","sourceFile","textRange","T","gen","$","ts","service","AST","TypeScriptApi","isConvertibleDeclaration","node","kind","SyntaxKind","FunctionDeclaration","FunctionExpression","ArrowFunction","MethodDeclaration","getNodesContainingRange","Ch","filter","head","O","map","program","TypeScriptProgram","typeChecker","getTypeChecker","changeTracker","ChangeTrackerApi","type","delete","callableType","getTypeAtLocation","returnTypes","getCallSignatures","s","getReturnType","returnTypeNodes","typeToTypeNode","NodeBuilderFlags","NoTruncation","length","returnTypeNode","factory","createUnionTypeNode"],"sourceRoot":"","sources":["../../../src/refactors/toggleReturnTypeAnnotation.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/refactors/definition").RefactorDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=toggleTypeAnnotation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleTypeAnnotation.d.ts","sourceRoot":"","sources":["../../../src/refactors/toggleTypeAnnotation.ts"],"names":[],"mappings":";AAOA,wBAyCE"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
+ var _definition = /*#__PURE__*/require("@effect/language-service/refactors/definition");
10
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
11
+ var _Function = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
12
+ var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ var _default = /*#__PURE__*/(0, _definition.createRefactor)({
16
+ name: "effect/toggleTypeAnnotation",
17
+ description: "Toggle type annotation",
18
+ apply: (sourceFile, textRange) => T.gen(function* ($) {
19
+ const ts = yield* $(T.service(AST.TypeScriptApi));
20
+ return (0, _Function.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 => ({
21
+ description: "Toggle type annotation",
22
+ apply: T.gen(function* ($) {
23
+ const program = yield* $(T.service(AST.TypeScriptProgram));
24
+ const typeChecker = program.getTypeChecker();
25
+ const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
26
+ if (node.type) {
27
+ changeTracker.deleteRange(sourceFile, {
28
+ pos: node.type.pos - 2,
29
+ end: node.type.end
30
+ });
31
+ return;
32
+ }
33
+ const initializer = node.initializer;
34
+ const initializerType = typeChecker.getTypeAtLocation(initializer);
35
+ const initializerTypeNode = typeChecker.typeToTypeNode(initializerType, node, ts.NodeBuilderFlags.NoTruncation);
36
+ if (initializerTypeNode) {
37
+ changeTracker.insertNodeAt(sourceFile, node.name.end, initializerTypeNode, {
38
+ prefix: ": "
39
+ });
40
+ }
41
+ })
42
+ })));
43
+ })
44
+ });
45
+ exports.default = _default;
46
+ //# sourceMappingURL=toggleTypeAnnotation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggleTypeAnnotation.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAA8C;AAAA;AAAA,4BAE/B,8BAAc,EAAC;EAC5BA,IAAI,EAAE,6BAA6B;EACnCC,WAAW,EAAE,wBAAwB;EACrCC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BC,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACC,aAAa,CAAC,CAAC;IAEjD,OAAO,kBAAI,EACTD,GAAG,CAACE,uBAAuB,CAACJ,EAAE,CAAC,CAACL,UAAU,EAAEC,SAAS,CAAC,EACtDS,EAAE,CAACC,MAAM,CAACN,EAAE,CAACO,qBAAqB,CAAC,EACnCF,EAAE,CAACC,MAAM,CAAEE,IAAI,IAAKN,GAAG,CAACO,aAAa,CAACb,SAAS,CAAC,CAACY,IAAI,CAAChB,IAAI,CAAC,CAAC,EAC5Da,EAAE,CAACC,MAAM,CAAEE,IAAI,IAAK,CAAC,CAACA,IAAI,CAACE,WAAW,CAAC,EACvCL,EAAE,CAACM,IAAI,EACPC,CAAC,CAACC,GAAG,CACFL,IAAI,KAAM;MACTf,WAAW,EAAE,wBAAwB;MACrCC,KAAK,EAAEG,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMe,OAAO,GAAG,OAAOf,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACa,iBAAiB,CAAC,CAAC;QAC1D,MAAMC,WAAW,GAAGF,OAAO,CAACG,cAAc,EAAE;QAC5C,MAAMC,aAAa,GAAG,OAAOnB,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACiB,gBAAgB,CAAC,CAAC;QAE/D,IAAIX,IAAI,CAACY,IAAI,EAAE;UACbF,aAAa,CAACG,WAAW,CAAC1B,UAAU,EAAE;YAAE2B,GAAG,EAAEd,IAAI,CAACY,IAAI,CAACE,GAAG,GAAG,CAAC;YAAEC,GAAG,EAAEf,IAAI,CAACY,IAAI,CAACG;UAAG,CAAE,CAAC;UACrF;;QAGF,MAAMb,WAAW,GAAGF,IAAI,CAACE,WAAY;QACrC,MAAMc,eAAe,GAAGR,WAAW,CAACS,iBAAiB,CAACf,WAAW,CAAC;QAClE,MAAMgB,mBAAmB,GAAGV,WAAW,CAACW,cAAc,CACpDH,eAAe,EACfhB,IAAI,EACJR,EAAE,CAAC4B,gBAAgB,CAACC,YAAY,CACjC;QACD,IAAIH,mBAAmB,EAAE;UACvBR,aAAa,CAACY,YAAY,CAACnC,UAAU,EAAEa,IAAI,CAAChB,IAAI,CAAC+B,GAAG,EAAEG,mBAAmB,EAAE;YAAEK,MAAM,EAAE;UAAI,CAAE,CAAC;;MAEhG,CAAC;KACF,CAAC,CACH,CACF;EACH,CAAC;CACJ,CAAC;AAAA","names":["name","description","apply","sourceFile","textRange","T","gen","$","ts","service","AST","TypeScriptApi","getNodesContainingRange","Ch","filter","isVariableDeclaration","node","isNodeInRange","initializer","head","O","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]}
package/utils.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import * as T from "@effect/core/io/Effect";
2
+ import * as AST from "@effect/language-service/ast";
3
+ import * as O from "@tsplus/stdlib/data/Maybe";
4
+ import type ts from "typescript/lib/tsserverlibrary";
5
+ export declare function isPipeCall(ts: AST.TypeScriptApi): (node: ts.Node) => node is ts.CallExpression;
6
+ export declare function asPipeableCallExpression(ts: AST.TypeScriptApi): (node: ts.Node) => O.None | O.Some<readonly [ts.LeftHandSideExpression, ts.Expression]>;
7
+ export declare function asPipeArguments(ts: AST.TypeScriptApi): (initialNode: ts.Node) => Iterable<ts.Expression>;
8
+ export declare function isPipeableCallExpression(ts: AST.TypeScriptApi): (node: ts.Node) => node is ts.CallExpression;
9
+ export declare function isCombinatorCall(ts: AST.TypeScriptApi): (moduleIdentifier: string, moduleMethodName: string) => (node: ts.Node) => node is ts.CallExpression;
10
+ export declare function findModuleImportIdentifierName(ts: AST.TypeScriptApi): (sourceFile: ts.SourceFile, moduleName: string) => O.Maybe<string>;
11
+ export declare function isCurryArrow(ts: AST.TypeScriptApi): (arrow: ts.Node) => arrow is ts.ArrowFunction;
12
+ export declare function isLiteralConstantValue(ts: AST.TypeScriptApi): (node: ts.Node) => boolean;
13
+ export declare function transformAsyncAwaitToEffectGen(node: ts.FunctionDeclaration | ts.ArrowFunction | ts.FunctionExpression, effectName: string, onAwait: (expression: ts.Expression) => ts.Expression): T.Effect<typeof ts, never, ts.FunctionDeclaration | ts.FunctionExpression | ts.ArrowFunction>;
14
+ export declare function addReturnTypeAnnotation(ts: AST.TypeScriptApi, changes: ts.textChanges.ChangeTracker): (sourceFile: ts.SourceFile, declaration: ts.FunctionDeclaration | ts.FunctionExpression | ts.ArrowFunction | ts.MethodDeclaration, typeNode: ts.TypeNode) => void;
15
+ //# sourceMappingURL=utils.d.ts.map
package/utils.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,wBAAwB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAA;AAGnD,OAAO,KAAK,CAAC,MAAM,2BAA2B,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAEpD,wBAAgB,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAChC,GAAG,IAAI,+BAOtB;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAC9C,GAAG,IAAI,0EAatB;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,iBAC9B,GAAG,IAAI,6BAgB7B;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAC9C,GAAG,IAAI,+BACtB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,sBAC1B,MAAM,oBAAoB,MAAM,YACjD,GAAG,IAAI,+BAYjB;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,GAAG,CAAC,aAAa,gBAED,GAAG,UAAU,cAAc,MAAM,qBActD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,WACjC,GAAG,IAAI,+BAcvB;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAC5C,GAAG,IAAI,aAKtB;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,EAAE,CAAC,mBAAmB,GAAG,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,EACvE,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU,iGA6EtD;AAED,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,GAAG,CAAC,aAAa,EACrB,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,gBAGvB,GAAG,UAAU,eAErB,GAAG,mBAAmB,GACtB,GAAG,kBAAkB,GACrB,GAAG,aAAa,GAChB,GAAG,iBAAiB,YACd,GAAG,QAAQ,UAaxB"}