@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.
- package/_mjs/diagnostics/definition.mjs.map +1 -1
- package/_mjs/diagnostics/ensureGetCallTrace.mjs +5 -8
- package/_mjs/diagnostics/ensureGetCallTrace.mjs.map +1 -1
- package/_mjs/diagnostics/noSyncWithConstant.mjs +8 -11
- package/_mjs/diagnostics/noSyncWithConstant.mjs.map +1 -1
- package/_mjs/eslint-rules/no-curry-arrow.mjs +2 -2
- package/_mjs/eslint-rules/no-curry-arrow.mjs.map +1 -1
- package/_mjs/index.mjs +24 -27
- package/_mjs/index.mjs.map +1 -1
- package/_mjs/refactors/addPipe.mjs +12 -18
- package/_mjs/refactors/addPipe.mjs.map +1 -1
- package/_mjs/refactors/asyncAwaitToGen.mjs +12 -18
- package/_mjs/refactors/asyncAwaitToGen.mjs.map +1 -1
- package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs +17 -23
- package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs.map +1 -1
- package/_mjs/refactors/definition.mjs.map +1 -1
- package/_mjs/refactors/functionToArrow.mjs +31 -36
- package/_mjs/refactors/functionToArrow.mjs.map +1 -1
- package/_mjs/refactors/noSyncWithConstant.mjs +10 -14
- package/_mjs/refactors/noSyncWithConstant.mjs.map +1 -1
- package/_mjs/refactors/removeCurryArrow.mjs +12 -18
- package/_mjs/refactors/removeCurryArrow.mjs.map +1 -1
- package/_mjs/refactors/removePipe.mjs +11 -17
- package/_mjs/refactors/removePipe.mjs.map +1 -1
- package/_mjs/refactors/toggleReturnTypeAnnotation.mjs +10 -15
- package/_mjs/refactors/toggleReturnTypeAnnotation.mjs.map +1 -1
- package/_mjs/refactors/toggleTypeAnnotation.mjs +25 -31
- package/_mjs/refactors/toggleTypeAnnotation.mjs.map +1 -1
- package/_mjs/refactors/wrapWithPipe.mjs +5 -8
- package/_mjs/refactors/wrapWithPipe.mjs.map +1 -1
- package/_mjs/{utils.mjs → utils/AST.mjs} +81 -4
- package/_mjs/utils/AST.mjs.map +1 -0
- package/_mjs/utils/Function.mjs +31 -0
- package/_mjs/utils/Function.mjs.map +1 -0
- package/_mjs/utils/Option.mjs +14 -0
- package/_mjs/utils/Option.mjs.map +1 -0
- package/_mjs/utils/ReadonlyArray.mjs +12 -0
- package/_mjs/utils/ReadonlyArray.mjs.map +1 -0
- package/diagnostics/definition.d.ts +3 -3
- package/diagnostics/definition.d.ts.map +1 -1
- package/diagnostics/definition.js.map +1 -1
- package/diagnostics/ensureGetCallTrace.d.ts.map +1 -1
- package/diagnostics/ensureGetCallTrace.js +5 -8
- package/diagnostics/ensureGetCallTrace.js.map +1 -1
- package/diagnostics/noSyncWithConstant.d.ts +1 -1
- package/diagnostics/noSyncWithConstant.d.ts.map +1 -1
- package/diagnostics/noSyncWithConstant.js +8 -11
- package/diagnostics/noSyncWithConstant.js.map +1 -1
- package/eslint-rules/no-curry-arrow.js +2 -2
- package/eslint-rules/no-curry-arrow.js.map +1 -1
- package/index.js +25 -28
- package/index.js.map +1 -1
- package/package.json +3 -5
- package/refactors/addPipe.d.ts.map +1 -1
- package/refactors/addPipe.js +12 -18
- package/refactors/addPipe.js.map +1 -1
- package/refactors/asyncAwaitToGen.d.ts.map +1 -1
- package/refactors/asyncAwaitToGen.js +12 -18
- package/refactors/asyncAwaitToGen.js.map +1 -1
- package/refactors/asyncAwaitToGenTryPromise.d.ts.map +1 -1
- package/refactors/asyncAwaitToGenTryPromise.js +17 -23
- package/refactors/asyncAwaitToGenTryPromise.js.map +1 -1
- package/refactors/definition.d.ts +7 -6
- package/refactors/definition.d.ts.map +1 -1
- package/refactors/definition.js.map +1 -1
- package/refactors/functionToArrow.d.ts.map +1 -1
- package/refactors/functionToArrow.js +31 -36
- package/refactors/functionToArrow.js.map +1 -1
- package/refactors/noSyncWithConstant.d.ts.map +1 -1
- package/refactors/noSyncWithConstant.js +10 -14
- package/refactors/noSyncWithConstant.js.map +1 -1
- package/refactors/removeCurryArrow.d.ts.map +1 -1
- package/refactors/removeCurryArrow.js +12 -18
- package/refactors/removeCurryArrow.js.map +1 -1
- package/refactors/removePipe.d.ts.map +1 -1
- package/refactors/removePipe.js +11 -17
- package/refactors/removePipe.js.map +1 -1
- package/refactors/toggleReturnTypeAnnotation.d.ts.map +1 -1
- package/refactors/toggleReturnTypeAnnotation.js +10 -15
- package/refactors/toggleReturnTypeAnnotation.js.map +1 -1
- package/refactors/toggleTypeAnnotation.d.ts.map +1 -1
- package/refactors/toggleTypeAnnotation.js +25 -31
- package/refactors/toggleTypeAnnotation.js.map +1 -1
- package/refactors/wrapWithPipe.d.ts.map +1 -1
- package/refactors/wrapWithPipe.js +5 -8
- package/refactors/wrapWithPipe.js.map +1 -1
- package/{ast.d.ts → utils/AST.d.ts} +17 -10
- package/utils/AST.d.ts.map +1 -0
- package/{utils.js → utils/AST.js} +91 -4
- package/utils/AST.js.map +1 -0
- package/utils/Function.d.ts +21 -0
- package/utils/Function.d.ts.map +1 -0
- package/utils/Function.js +37 -0
- package/utils/Function.js.map +1 -0
- package/utils/Option.d.ts +17 -0
- package/utils/Option.d.ts.map +1 -0
- package/utils/Option.js +28 -0
- package/utils/Option.js.map +1 -0
- package/utils/ReadonlyArray.d.ts +17 -0
- package/utils/ReadonlyArray.d.ts.map +1 -0
- package/utils/ReadonlyArray.js +30 -0
- package/utils/ReadonlyArray.js.map +1 -0
- package/_mjs/ast.mjs +0 -80
- package/_mjs/ast.mjs.map +0 -1
- package/_mjs/utils.mjs.map +0 -1
- package/ast.d.ts.map +0 -1
- package/ast.js +0 -100
- package/ast.js.map +0 -1
- package/utils.d.ts +0 -17
- package/utils.d.ts.map +0 -1
- 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
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import * as
|
|
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) =>
|
|
13
|
-
const
|
|
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:
|
|
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,
|
|
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
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import * as
|
|
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) =>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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,
|
|
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
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import * as
|
|
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) =>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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,
|
|
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
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import * as
|
|
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: (
|
|
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:
|
|
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":"AAAA,
|
|
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
|
|
5
|
-
import { pipe } from "@
|
|
6
|
-
import * as O from "@
|
|
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) =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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,
|
|
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 "@
|
|
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: (
|
|
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:
|
|
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,
|
|
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
|
|
2
|
-
import
|
|
3
|
-
import * as
|
|
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=
|
|
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
|
|
2
|
-
import type * as Ch from "@
|
|
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:
|
|
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,
|
|
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":";;;;;;
|
|
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]}
|