@effect/language-service 0.0.21 → 0.1.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 (99) hide show
  1. package/index.cjs +1457 -0
  2. package/package.json +18 -28
  3. package/README.md +0 -57
  4. package/_mjs/index.mjs +0 -71
  5. package/_mjs/index.mjs.map +0 -1
  6. package/_mjs/refactors/asyncAwaitToGen.mjs +0 -19
  7. package/_mjs/refactors/asyncAwaitToGen.mjs.map +0 -1
  8. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs +0 -24
  9. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs.map +0 -1
  10. package/_mjs/refactors/definition.mjs +0 -4
  11. package/_mjs/refactors/definition.mjs.map +0 -1
  12. package/_mjs/refactors/functionToArrow.mjs +0 -39
  13. package/_mjs/refactors/functionToArrow.mjs.map +0 -1
  14. package/_mjs/refactors/index.mjs +0 -19
  15. package/_mjs/refactors/index.mjs.map +0 -1
  16. package/_mjs/refactors/pipeableToDatafirst.mjs +0 -38
  17. package/_mjs/refactors/pipeableToDatafirst.mjs.map +0 -1
  18. package/_mjs/refactors/toggleLazyConst.mjs +0 -32
  19. package/_mjs/refactors/toggleLazyConst.mjs.map +0 -1
  20. package/_mjs/refactors/toggleReturnTypeAnnotation.mjs +0 -40
  21. package/_mjs/refactors/toggleReturnTypeAnnotation.mjs.map +0 -1
  22. package/_mjs/refactors/toggleTypeAnnotation.mjs +0 -32
  23. package/_mjs/refactors/toggleTypeAnnotation.mjs.map +0 -1
  24. package/_mjs/refactors/wrapWithPipe.mjs +0 -18
  25. package/_mjs/refactors/wrapWithPipe.mjs.map +0 -1
  26. package/_mjs/transformer.mjs +0 -163
  27. package/_mjs/transformer.mjs.map +0 -1
  28. package/_mjs/utils/AST.mjs +0 -210
  29. package/_mjs/utils/AST.mjs.map +0 -1
  30. package/_mjs/utils/Function.mjs +0 -31
  31. package/_mjs/utils/Function.mjs.map +0 -1
  32. package/_mjs/utils/Option.mjs +0 -15
  33. package/_mjs/utils/Option.mjs.map +0 -1
  34. package/_mjs/utils/ReadonlyArray.mjs +0 -12
  35. package/_mjs/utils/ReadonlyArray.mjs.map +0 -1
  36. package/index.d.ts +0 -2
  37. package/index.d.ts.map +0 -1
  38. package/index.js +0 -76
  39. package/index.js.map +0 -1
  40. package/refactors/asyncAwaitToGen.d.ts +0 -3
  41. package/refactors/asyncAwaitToGen.d.ts.map +0 -1
  42. package/refactors/asyncAwaitToGen.js +0 -28
  43. package/refactors/asyncAwaitToGen.js.map +0 -1
  44. package/refactors/asyncAwaitToGenTryPromise.d.ts +0 -3
  45. package/refactors/asyncAwaitToGenTryPromise.d.ts.map +0 -1
  46. package/refactors/asyncAwaitToGenTryPromise.js +0 -33
  47. package/refactors/asyncAwaitToGenTryPromise.js.map +0 -1
  48. package/refactors/definition.d.ts +0 -15
  49. package/refactors/definition.d.ts.map +0 -1
  50. package/refactors/definition.js +0 -10
  51. package/refactors/definition.js.map +0 -1
  52. package/refactors/functionToArrow.d.ts +0 -3
  53. package/refactors/functionToArrow.d.ts.map +0 -1
  54. package/refactors/functionToArrow.js +0 -48
  55. package/refactors/functionToArrow.js.map +0 -1
  56. package/refactors/index.d.ts +0 -12
  57. package/refactors/index.d.ts.map +0 -1
  58. package/refactors/index.js +0 -27
  59. package/refactors/index.js.map +0 -1
  60. package/refactors/pipeableToDatafirst.d.ts +0 -3
  61. package/refactors/pipeableToDatafirst.d.ts.map +0 -1
  62. package/refactors/pipeableToDatafirst.js +0 -47
  63. package/refactors/pipeableToDatafirst.js.map +0 -1
  64. package/refactors/toggleLazyConst.d.ts +0 -3
  65. package/refactors/toggleLazyConst.d.ts.map +0 -1
  66. package/refactors/toggleLazyConst.js +0 -41
  67. package/refactors/toggleLazyConst.js.map +0 -1
  68. package/refactors/toggleReturnTypeAnnotation.d.ts +0 -3
  69. package/refactors/toggleReturnTypeAnnotation.d.ts.map +0 -1
  70. package/refactors/toggleReturnTypeAnnotation.js +0 -49
  71. package/refactors/toggleReturnTypeAnnotation.js.map +0 -1
  72. package/refactors/toggleTypeAnnotation.d.ts +0 -3
  73. package/refactors/toggleTypeAnnotation.d.ts.map +0 -1
  74. package/refactors/toggleTypeAnnotation.js +0 -41
  75. package/refactors/toggleTypeAnnotation.js.map +0 -1
  76. package/refactors/wrapWithPipe.d.ts +0 -3
  77. package/refactors/wrapWithPipe.d.ts.map +0 -1
  78. package/refactors/wrapWithPipe.js +0 -27
  79. package/refactors/wrapWithPipe.js.map +0 -1
  80. package/transformer.d.ts +0 -27
  81. package/transformer.d.ts.map +0 -1
  82. package/transformer.js +0 -170
  83. package/transformer.js.map +0 -1
  84. package/utils/AST.d.ts +0 -120
  85. package/utils/AST.d.ts.map +0 -1
  86. package/utils/AST.js +0 -235
  87. package/utils/AST.js.map +0 -1
  88. package/utils/Function.d.ts +0 -21
  89. package/utils/Function.d.ts.map +0 -1
  90. package/utils/Function.js +0 -37
  91. package/utils/Function.js.map +0 -1
  92. package/utils/Option.d.ts +0 -18
  93. package/utils/Option.d.ts.map +0 -1
  94. package/utils/Option.js +0 -30
  95. package/utils/Option.js.map +0 -1
  96. package/utils/ReadonlyArray.d.ts +0 -17
  97. package/utils/ReadonlyArray.d.ts.map +0 -1
  98. package/utils/ReadonlyArray.js +0 -30
  99. package/utils/ReadonlyArray.js.map +0 -1
@@ -1,163 +0,0 @@
1
- import { createFilter } from "@rollup/pluginutils";
2
- import ts from "typescript";
3
- class RefCounted {
4
- constructor(ref) {
5
- this.ref = ref;
6
- this.counter = 0;
7
- }
8
- get get() {
9
- this.counter++;
10
- return this.ref;
11
- }
12
- get count() {
13
- return this.counter;
14
- }
15
- }
16
- export default function effectPlugin(program, options) {
17
- const checker = program.getTypeChecker();
18
- const traceFilter = createFilter(options?.trace?.include, options?.trace?.exclude);
19
- const debugFilter = createFilter(options?.debug?.include ?? [], options?.debug?.exclude ?? (options?.debug?.include ? [] : ["**/*"]));
20
- const optimizeFilter = createFilter(options?.optimize?.include, options?.optimize?.exclude);
21
- const removeUnusedImports = options?.removeUnusedImports ?? true;
22
- return {
23
- before(ctx) {
24
- return sourceFile => {
25
- if (sourceFile.isDeclarationFile) {
26
- return sourceFile;
27
- }
28
- const tracer = new RefCounted(ctx.factory.createUniqueName("tracer"));
29
- const fileName = new RefCounted(ctx.factory.createUniqueName("fileName"));
30
- function getOriginal(node) {
31
- let current = node;
32
- while ("original" in current) {
33
- current = current["original"];
34
- }
35
- return current;
36
- }
37
- function getTrace(node) {
38
- try {
39
- const pos = getOriginal(node).getStart();
40
- const nodeEnd = sourceFile.getLineAndCharacterOfPosition(pos);
41
- return ctx.factory.createBinaryExpression(fileName.get, ctx.factory.createToken(ts.SyntaxKind.PlusToken), ctx.factory.createStringLiteral(`:${nodeEnd.line + 1}:${nodeEnd.character + 1}`));
42
- } catch (e) {
43
- return undefined;
44
- }
45
- }
46
- const debugVisitor = node => {
47
- const visited = ts.visitEachChild(node, debugVisitor, ctx);
48
- if (ts.isFunctionDeclaration(visited)) {
49
- return ctx.factory.updateFunctionDeclaration(visited, visited.modifiers, visited.asteriskToken, visited.name, visited.typeParameters, visited.parameters, visited.type, visited.body ? ctx.factory.updateBlock(visited.body, [ctx.factory.createDebuggerStatement(), ...visited.body.statements]) : visited.body);
50
- } else if (ts.isFunctionExpression(visited)) {
51
- return ctx.factory.updateFunctionExpression(visited, visited.modifiers, visited.asteriskToken, visited.name, visited.typeParameters, visited.parameters, visited.type, visited.body ? ctx.factory.updateBlock(visited.body, [ctx.factory.createDebuggerStatement(), ...visited.body.statements]) : visited.body);
52
- } else if (ts.isArrowFunction(visited)) {
53
- return ctx.factory.updateArrowFunction(visited, visited.modifiers, visited.typeParameters, visited.parameters, visited.type, visited.equalsGreaterThanToken, ts.isBlock(visited.body) ? ctx.factory.updateBlock(visited.body, [ctx.factory.createDebuggerStatement(), ...visited.body.statements]) : ctx.factory.createBlock([ctx.factory.createDebuggerStatement(), ctx.factory.createReturnStatement(visited.body)]));
54
- }
55
- return visited;
56
- };
57
- const traceVisitor = node => {
58
- const visited = ts.visitEachChild(node, traceVisitor, ctx);
59
- if (ts.isCallExpression(visited)) {
60
- let shouldEmbedTrace = false;
61
- const signature = checker.getResolvedSignature(visited);
62
- const declaration = signature?.declaration;
63
- if (declaration) {
64
- shouldEmbedTrace = ts.getAllJSDocTags(declaration, tag => tag.tagName.text === "macro" && tag.comment === "traced").length > 0;
65
- }
66
- if (!shouldEmbedTrace) {
67
- shouldEmbedTrace = (checker.getSymbolAtLocation(visited.expression)?.getJsDocTags(checker).filter(tag => tag.name === "macro" && tag.text && tag.text.map(d => d.text).join("\n") === "traced") || []).length > 0;
68
- }
69
- if (shouldEmbedTrace) {
70
- const trace = getTrace(ts.isPropertyAccessExpression(visited.expression) ? visited.expression.name : visited.expression);
71
- if (typeof trace !== "undefined") {
72
- return ctx.factory.createCallExpression(ctx.factory.createCallExpression(ctx.factory.createPropertyAccessExpression(tracer.get, "withCallTrace"), [], [trace]), [], [visited]);
73
- }
74
- }
75
- }
76
- return visited;
77
- };
78
- const findSource = node => {
79
- while (!ts.isSourceFile(node)) {
80
- node = node.parent;
81
- }
82
- return node;
83
- };
84
- const optimizeVisitor = node => {
85
- const visited = ts.visitEachChild(node, optimizeVisitor, ctx);
86
- if (ts.isCallExpression(visited) && visited.arguments.length > 0) {
87
- const signature = checker.getResolvedSignature(visited);
88
- const declaration = signature?.declaration;
89
- if (declaration && !ts.isJSDocSignature(declaration) && findSource(declaration).fileName.includes("@fp-ts/data/Function")) {
90
- if (declaration.name?.getText() === "pipe") {
91
- let expr = ts.visitNode(visited.arguments[0], optimizeVisitor);
92
- for (let i = 1; i < visited.arguments.length; i++) {
93
- expr = ctx.factory.createCallExpression(ts.visitNode(visited.arguments[i], optimizeVisitor), [], [expr]);
94
- }
95
- return expr;
96
- }
97
- }
98
- }
99
- return visited;
100
- };
101
- const usedImportsVisitor = node => {
102
- if (ts.isImportDeclaration(node) && node.importClause) {
103
- if (node.importClause.namedBindings && ts.isNamedImports(node.importClause.namedBindings)) {
104
- node.importClause.namedBindings.elements.forEach(specifier => {
105
- specifier.used = 1;
106
- });
107
- } else if (node.importClause.namedBindings && ts.isNamespaceImport(node.importClause.namedBindings)) {
108
- node.importClause.namedBindings.used = 1;
109
- }
110
- } else if (ts.isIdentifier(node) && node.parent && !ts.isImportSpecifier(node.parent) && !ts.isNamespaceImport(node.parent)) {
111
- checker.getSymbolAtLocation(node)?.declarations?.forEach(d => {
112
- if (ts.isImportSpecifier(d) || ts.isNamespaceImport(d)) {
113
- d.used = (d.used ?? 1) + 1;
114
- }
115
- });
116
- }
117
- return ts.visitEachChild(node, usedImportsVisitor, ctx);
118
- };
119
- let visited = sourceFile;
120
- if (optimizeFilter(sourceFile.fileName)) {
121
- visited = ts.visitNode(visited, optimizeVisitor);
122
- }
123
- if (traceFilter(sourceFile.fileName)) {
124
- visited = ts.visitNode(visited, traceVisitor);
125
- }
126
- if (debugFilter(sourceFile.fileName)) {
127
- visited = ts.visitNode(visited, debugVisitor);
128
- }
129
- if (removeUnusedImports) {
130
- visited = ts.visitNode(visited, usedImportsVisitor);
131
- }
132
- const statements = [];
133
- if (tracer.count > 0) {
134
- statements.push(ctx.factory.createImportDeclaration(undefined, ctx.factory.createImportClause(false, undefined, ctx.factory.createNamespaceImport(tracer.get)), ctx.factory.createStringLiteral("@effect/io/Debug")));
135
- }
136
- if (fileName.count > 0) {
137
- statements.push(ctx.factory.createVariableStatement(undefined, ctx.factory.createVariableDeclarationList([ctx.factory.createVariableDeclaration(fileName.get, undefined, undefined, ctx.factory.createStringLiteral(sourceFile.fileName))], ts.NodeFlags.Const)));
138
- }
139
- for (const statement of visited.statements) {
140
- statements.push(statement);
141
- }
142
- return ctx.factory.updateSourceFile(visited, statements.filter(statement => {
143
- if (!removeUnusedImports) {
144
- return true;
145
- }
146
- if (ts.isImportDeclaration(statement) && statement.importClause) {
147
- if (statement.importClause.namedBindings && ts.isNamedImports(statement.importClause.namedBindings)) {
148
- if (statement.importClause.namedBindings.elements.every(specifier => specifier.used === 0)) {
149
- return false;
150
- }
151
- } else if (statement.importClause.namedBindings && ts.isNamespaceImport(statement.importClause.namedBindings)) {
152
- if (statement.importClause.namedBindings.used === 0) {
153
- return false;
154
- }
155
- }
156
- }
157
- return true;
158
- }), visited.isDeclarationFile, visited.referencedFiles, visited.typeReferenceDirectives, visited.hasNoDefaultLib, visited.libReferenceDirectives);
159
- };
160
- }
161
- };
162
- }
163
- //# sourceMappingURL=transformer.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformer.mjs","mappings":"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","names":["createFilter","ts","RefCounted","constructor","ref","get","counter","count","effectPlugin","program","options","checker","getTypeChecker","traceFilter","trace","include","exclude","debugFilter","debug","optimizeFilter","optimize","removeUnusedImports","before","ctx","sourceFile","isDeclarationFile","tracer","factory","createUniqueName","fileName","getOriginal","node","current","getTrace","pos","getStart","nodeEnd","getLineAndCharacterOfPosition","createBinaryExpression","createToken","SyntaxKind","PlusToken","createStringLiteral","line","character","e","undefined","debugVisitor","visited","visitEachChild","isFunctionDeclaration","updateFunctionDeclaration","modifiers","asteriskToken","name","typeParameters","parameters","type","body","updateBlock","createDebuggerStatement","statements","isFunctionExpression","updateFunctionExpression","isArrowFunction","updateArrowFunction","equalsGreaterThanToken","isBlock","createBlock","createReturnStatement","traceVisitor","isCallExpression","shouldEmbedTrace","signature","getResolvedSignature","declaration","getAllJSDocTags","tag","tagName","text","comment","length","getSymbolAtLocation","expression","getJsDocTags","filter","map","d","join","isPropertyAccessExpression","createCallExpression","createPropertyAccessExpression","findSource","isSourceFile","parent","optimizeVisitor","arguments","isJSDocSignature","includes","getText","expr","visitNode","i","usedImportsVisitor","isImportDeclaration","importClause","namedBindings","isNamedImports","elements","forEach","specifier","used","isNamespaceImport","isIdentifier","isImportSpecifier","declarations","push","createImportDeclaration","createImportClause","createNamespaceImport","createVariableStatement","createVariableDeclarationList","createVariableDeclaration","NodeFlags","Const","statement","updateSourceFile","every","referencedFiles","typeReferenceDirectives","hasNoDefaultLib","libReferenceDirectives"],"sourceRoot":"","sources":["../../src/transformer.ts"],"sourcesContent":[null]}
@@ -1,210 +0,0 @@
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
- }
81
- export function findModuleImportIdentifierName(ts) {
82
- return (sourceFile, moduleName) => {
83
- return O.fromNullable(ts.forEachChild(sourceFile, node => {
84
- if (!ts.isImportDeclaration(node)) return;
85
- const moduleSpecifier = node.moduleSpecifier;
86
- if (!ts.isStringLiteral(moduleSpecifier)) return;
87
- if (moduleSpecifier.text !== moduleName) return;
88
- const importClause = node.importClause;
89
- if (!importClause) return;
90
- const namedBindings = importClause.namedBindings;
91
- if (!namedBindings) return;
92
- if (!ts.isNamespaceImport(namedBindings)) return;
93
- return namedBindings.name.text;
94
- }));
95
- };
96
- }
97
- export function transformAsyncAwaitToEffectGen(ts) {
98
- return (node, effectName, onAwait) => {
99
- function visitor(_) {
100
- if (ts.isAwaitExpression(_)) {
101
- const expression = ts.visitEachChild(_.expression, visitor, ts.nullTransformationContext);
102
- return ts.factory.createYieldExpression(ts.factory.createToken(ts.SyntaxKind.AsteriskToken), ts.factory.createCallExpression(ts.factory.createIdentifier("$"), undefined, [onAwait(expression)]));
103
- }
104
- return ts.visitEachChild(_, visitor, ts.nullTransformationContext);
105
- }
106
- const generatorBody = visitor(node.body);
107
- const generator = ts.factory.createFunctionExpression([], ts.factory.createToken(ts.SyntaxKind.AsteriskToken), undefined, [], [ts.factory.createParameterDeclaration(undefined, undefined, "$")], undefined, generatorBody // NOTE(mattia): intended, to use same routine for both ConciseBody and Body
108
- );
109
-
110
- const effectGenCallExp = ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectName), "gen"), undefined, [generator]);
111
- let currentFlags = ts.getCombinedModifierFlags(node);
112
- currentFlags &= ~ts.ModifierFlags.Async;
113
- const newModifiers = ts.factory.createModifiersFromModifierFlags(currentFlags);
114
- if (ts.isArrowFunction(node)) {
115
- return ts.factory.createArrowFunction(newModifiers, node.typeParameters, node.parameters, undefined, node.equalsGreaterThanToken, effectGenCallExp);
116
- }
117
- const newBody = ts.factory.createBlock([ts.factory.createReturnStatement(effectGenCallExp)]);
118
- if (ts.isFunctionDeclaration(node)) {
119
- return ts.factory.createFunctionDeclaration(newModifiers, node.asteriskToken, node.name, node.typeParameters, node.parameters, undefined, newBody);
120
- }
121
- return ts.factory.createFunctionExpression(newModifiers, node.asteriskToken, node.name, node.typeParameters, node.parameters, undefined, newBody);
122
- };
123
- }
124
- export function addReturnTypeAnnotation(ts, changes) {
125
- return (sourceFile, declaration, typeNode) => {
126
- const closeParen = ts.findChildOfKind(declaration, ts.SyntaxKind.CloseParenToken, sourceFile);
127
- const needParens = ts.isArrowFunction(declaration) && closeParen === undefined;
128
- const endNode = needParens ? declaration.parameters[0] : closeParen;
129
- if (endNode) {
130
- if (needParens) {
131
- changes.insertNodeBefore(sourceFile, endNode, ts.factory.createToken(ts.SyntaxKind.OpenParenToken));
132
- changes.insertNodeAfter(sourceFile, endNode, ts.factory.createToken(ts.SyntaxKind.CloseParenToken));
133
- }
134
- changes.insertNodeAt(sourceFile, endNode.end, typeNode, {
135
- prefix: ": "
136
- });
137
- }
138
- };
139
- }
140
- export function removeReturnTypeAnnotation(ts, changes) {
141
- return (sourceFile, declaration) => {
142
- const closeParen = ts.findChildOfKind(declaration, ts.SyntaxKind.CloseParenToken, sourceFile);
143
- const needParens = ts.isArrowFunction(declaration) && closeParen === undefined;
144
- const endNode = needParens ? declaration.parameters[0] : closeParen;
145
- if (endNode && declaration.type) {
146
- changes.deleteRange(sourceFile, {
147
- pos: endNode.end,
148
- end: declaration.type.end
149
- });
150
- }
151
- };
152
- }
153
- export function getEffectModuleIdentifier(ts) {
154
- return sourceFile => pipe(findModuleImportIdentifierName(ts)(sourceFile, "@effect/io/Effect"), O.orElse(findModuleImportIdentifierName(ts)(sourceFile, "@effect/io/Effect")), O.getOrElse(() => "Effect"));
155
- }
156
- export function simplifyTypeNode(ts) {
157
- function collectCallable(typeNode) {
158
- // (() => 1) -> skip to inner node
159
- if (ts.isParenthesizedTypeNode(typeNode)) return collectCallable(typeNode.type);
160
- // () => 1 -> convert to call signature
161
- if (ts.isFunctionTypeNode(typeNode)) {
162
- return O.some([ts.factory.createCallSignature(typeNode.typeParameters, typeNode.parameters, typeNode.type)]);
163
- }
164
- // { ... } -> if every member is callsignature, return a merge of all of those
165
- if (ts.isTypeLiteralNode(typeNode)) {
166
- const allCallSignatures = typeNode.members.every(ts.isCallSignatureDeclaration);
167
- if (allCallSignatures) return O.some(typeNode.members);
168
- }
169
- // ... & ... -> if both are callable, return merge of both
170
- if (ts.isIntersectionTypeNode(typeNode)) {
171
- const members = typeNode.types.map(collectCallable);
172
- if (members.every(O.isSome)) {
173
- return O.some(members.map(_ => O.isSome(_) ? _.value : []).flat());
174
- }
175
- }
176
- return O.none;
177
- }
178
- return typeNode => {
179
- const callSignatures = collectCallable(typeNode);
180
- if (O.isSome(callSignatures) && callSignatures.value.length > 1) {
181
- return ts.factory.createTypeLiteralNode(callSignatures.value);
182
- }
183
- return typeNode;
184
- };
185
- }
186
- export function isPipeCall(ts) {
187
- return node => {
188
- if (!ts.isCallExpression(node)) return false;
189
- const expression = node.expression;
190
- if (!ts.isIdentifier(expression)) return false;
191
- if (expression.text !== "pipe") return false;
192
- return true;
193
- };
194
- }
195
- export function asDataFirstExpression(ts, checker) {
196
- return (node, self) => {
197
- if (!ts.isCallExpression(node)) return O.none;
198
- const signature = checker.getResolvedSignature(node);
199
- if (!signature) return O.none;
200
- const callSignatures = checker.getTypeAtLocation(node.expression).getCallSignatures();
201
- for (let i = 0; i < callSignatures.length; i++) {
202
- const callSignature = callSignatures[i];
203
- if (callSignature.parameters.length === node.arguments.length + 1) {
204
- return O.some(ts.factory.createCallExpression(node.expression, [], [self].concat(node.arguments)));
205
- }
206
- }
207
- return O.none;
208
- };
209
- }
210
- //# sourceMappingURL=AST.mjs.map
@@ -1 +0,0 @@
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","findModuleImportIdentifierName","moduleName","isImportDeclaration","moduleSpecifier","isStringLiteral","importClause","namedBindings","isNamespaceImport","name","transformAsyncAwaitToEffectGen","effectName","onAwait","_","isAwaitExpression","expression","visitEachChild","nullTransformationContext","factory","createYieldExpression","createToken","SyntaxKind","AsteriskToken","createCallExpression","createIdentifier","generatorBody","body","generator","createFunctionExpression","createParameterDeclaration","effectGenCallExp","createPropertyAccessExpression","currentFlags","ModifierFlags","Async","newModifiers","createModifiersFromModifierFlags","isArrowFunction","createArrowFunction","typeParameters","parameters","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","simplifyTypeNode","collectCallable","isParenthesizedTypeNode","isFunctionTypeNode","createCallSignature","isTypeLiteralNode","allCallSignatures","members","every","isCallSignatureDeclaration","isIntersectionTypeNode","types","map","isSome","value","flat","none","callSignatures","createTypeLiteralNode","isPipeCall","isCallExpression","isIdentifier","asDataFirstExpression","checker","self","signature","getResolvedSignature","getTypeAtLocation","getCallSignatures","i","callSignature","arguments","concat"],"sourceRoot":"","sources":["../../../src/utils/AST.ts"],"sourcesContent":[null]}
@@ -1,31 +0,0 @@
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
@@ -1 +0,0 @@
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]}
@@ -1,15 +0,0 @@
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
- export const flatMap = fn => self => isNone(self) ? self : fn(self.value);
15
- //# sourceMappingURL=Option.mjs.map
@@ -1 +0,0 @@
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;AAEvG,OAAO,MAAMW,OAAO,GAAUC,EAAuB,IAClDN,IAAe,IAAgBL,MAAM,CAACK,IAAI,CAAC,GAAGA,IAAI,GAAGM,EAAE,CAACN,IAAI,CAACN,KAAK,CAAC","names":["none","_tag","some","value","isNone","fa","isSome","map","f","self","fromNullable","orElse","alt","getOrElse","flatMap","fn"],"sourceRoot":"","sources":["../../../src/utils/Option.ts"],"sourcesContent":[null]}
@@ -1,12 +0,0 @@
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
@@ -1 +0,0 @@
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]}
package/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
package/index.js DELETED
@@ -1,76 +0,0 @@
1
- "use strict";
2
-
3
- var _index = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/index"));
4
- var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/utils/AST"));
5
- var _Function = /*#__PURE__*/require("@effect/language-service/utils/Function");
6
- var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/utils/Option"));
7
- 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); }
8
- 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; }
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- // eslint-disable-next-line @typescript-eslint/consistent-type-imports
11
- function init(modules) {
12
- const ts = modules.typescript;
13
- function create(info) {
14
- const languageService = info.languageService;
15
- // create the proxy
16
- const proxy = Object.create(null);
17
- for (const k of Object.keys(info.languageService)) {
18
- // @ts-expect-error
19
- proxy[k] = (...args) => languageService[k].apply(languageService, args);
20
- }
21
- proxy.getApplicableRefactors = (...args) => {
22
- const applicableRefactors = languageService.getApplicableRefactors(...args);
23
- const [fileName, positionOrRange] = args;
24
- const program = languageService.getProgram();
25
- if (program) {
26
- const textRange = AST.toTextRange(positionOrRange);
27
- const effectRefactors = (0, _Function.pipe)(AST.getSourceFile(program)(fileName), sourceFile => (0, _Function.pipe)(Object.values(_index.default).map(refactor => (0, _Function.pipe)(refactor.apply(modules.typescript, program)(sourceFile, textRange), O.map(_ => ({
28
- name: refactor.name,
29
- description: refactor.description,
30
- actions: [{
31
- name: refactor.name,
32
- description: _.description,
33
- kind: _.kind
34
- }]
35
- })))), _ => _.reduce((arr, maybeRefactor) => arr.concat(O.isSome(maybeRefactor) ? [maybeRefactor.value] : []), [])));
36
- info.project.projectService.logger.info("[@effect/language-service] possible refactors are " + JSON.stringify(effectRefactors));
37
- return applicableRefactors.concat(effectRefactors);
38
- }
39
- return applicableRefactors;
40
- };
41
- proxy.getEditsForRefactor = (fileName, formatOptions, positionOrRange, refactorName, actionName, preferences, ...args) => {
42
- const program = languageService.getProgram();
43
- if (program) {
44
- for (const refactor of Object.values(_index.default)) {
45
- if (refactor.name === refactorName) {
46
- const sourceFile = AST.getSourceFile(program)(fileName);
47
- const textRange = AST.toTextRange(positionOrRange);
48
- const possibleRefactor = refactor.apply(modules.typescript, program)(sourceFile, textRange);
49
- if (O.isNone(possibleRefactor)) {
50
- info.project.projectService.logger.info("[@effect/language-service] requested refactor " + refactorName + " is not applicable");
51
- return {
52
- edits: []
53
- };
54
- }
55
- const formatContext = ts.formatting.getFormatContext(formatOptions, info.languageServiceHost);
56
- const edits = ts.textChanges.ChangeTracker.with({
57
- formatContext,
58
- host: info.languageServiceHost,
59
- preferences: preferences || {}
60
- }, changeTracker => possibleRefactor.value.apply(changeTracker));
61
- return {
62
- edits
63
- };
64
- }
65
- }
66
- }
67
- return languageService.getEditsForRefactor(fileName, formatOptions, positionOrRange, refactorName, actionName, preferences, ...args);
68
- };
69
- return proxy;
70
- }
71
- return {
72
- create
73
- };
74
- }
75
- module.exports = init;
76
- //# sourceMappingURL=index.js.map
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","mappings":"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","names":["init","modules","ts","typescript","create","info","languageService","proxy","Object","k","keys","args","apply","getApplicableRefactors","applicableRefactors","fileName","positionOrRange","program","getProgram","textRange","AST","toTextRange","effectRefactors","getSourceFile","sourceFile","values","refactors","map","refactor","O","_","name","description","actions","kind","reduce","arr","maybeRefactor","concat","isSome","value","project","projectService","logger","JSON","stringify","getEditsForRefactor","formatOptions","refactorName","actionName","preferences","possibleRefactor","isNone","edits","formatContext","formatting","getFormatContext","languageServiceHost","textChanges","ChangeTracker","with","host","changeTracker","module","exports"],"sourceRoot":"","sources":["../../src/index.ts"],"sourcesContent":[null]}
@@ -1,3 +0,0 @@
1
- declare const _default: import("@effect/language-service/refactors/definition").RefactorDefinition;
2
- export default _default;
3
- //# sourceMappingURL=asyncAwaitToGen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"asyncAwaitToGen.d.ts","sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGen.ts"],"names":[],"mappings":";AAMA,wBA+BE"}