@effect/language-service 0.0.11 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_mjs/index.mjs +21 -61
- 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/index.mjs +1 -5
- package/_mjs/refactors/index.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 -39
- 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/index.js +24 -64
- package/index.js.map +1 -1
- package/package.json +1 -3
- 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/index.d.ts +0 -2
- package/refactors/index.d.ts.map +1 -1
- package/refactors/index.js +1 -5
- package/refactors/index.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} +14 -10
- package/utils/AST.d.ts.map +1 -0
- package/{utils.js → utils/AST.js} +91 -42
- 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/config.mjs +0 -24
- package/_mjs/config.mjs.map +0 -1
- package/_mjs/diagnostics/definition.mjs +0 -4
- package/_mjs/diagnostics/definition.mjs.map +0 -1
- package/_mjs/diagnostics/ensureGetCallTrace.mjs +0 -51
- package/_mjs/diagnostics/ensureGetCallTrace.mjs.map +0 -1
- package/_mjs/diagnostics/index.mjs +0 -7
- package/_mjs/diagnostics/index.mjs.map +0 -1
- package/_mjs/diagnostics/noSyncWithConstant.mjs +0 -40
- package/_mjs/diagnostics/noSyncWithConstant.mjs.map +0 -1
- package/_mjs/eslint-rules/index.mjs +0 -8
- package/_mjs/eslint-rules/index.mjs.map +0 -1
- package/_mjs/eslint-rules/no-curry-arrow.mjs +0 -33
- package/_mjs/eslint-rules/no-curry-arrow.mjs.map +0 -1
- package/_mjs/eslint-rules/utils.mjs +0 -8
- package/_mjs/eslint-rules/utils.mjs.map +0 -1
- package/_mjs/refactors/noSyncWithConstant.mjs +0 -34
- package/_mjs/refactors/noSyncWithConstant.mjs.map +0 -1
- package/_mjs/refactors/removeCurryArrow.mjs +0 -24
- package/_mjs/refactors/removeCurryArrow.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/config.d.ts +0 -10
- package/config.d.ts.map +0 -1
- package/config.js +0 -31
- package/config.js.map +0 -1
- package/diagnostics/definition.d.ts +0 -15
- package/diagnostics/definition.d.ts.map +0 -1
- package/diagnostics/definition.js +0 -10
- package/diagnostics/definition.js.map +0 -1
- package/diagnostics/ensureGetCallTrace.d.ts +0 -3
- package/diagnostics/ensureGetCallTrace.d.ts.map +0 -1
- package/diagnostics/ensureGetCallTrace.js +0 -60
- package/diagnostics/ensureGetCallTrace.js.map +0 -1
- package/diagnostics/index.d.ts +0 -6
- package/diagnostics/index.d.ts.map +0 -1
- package/diagnostics/index.js +0 -15
- package/diagnostics/index.js.map +0 -1
- package/diagnostics/noSyncWithConstant.d.ts +0 -10
- package/diagnostics/noSyncWithConstant.d.ts.map +0 -1
- package/diagnostics/noSyncWithConstant.js +0 -52
- package/diagnostics/noSyncWithConstant.js.map +0 -1
- package/eslint-rules/index.d.ts +0 -9
- package/eslint-rules/index.d.ts.map +0 -1
- package/eslint-rules/index.js +0 -16
- package/eslint-rules/index.js.map +0 -1
- package/eslint-rules/no-curry-arrow.d.ts +0 -5
- package/eslint-rules/no-curry-arrow.d.ts.map +0 -1
- package/eslint-rules/no-curry-arrow.js +0 -42
- package/eslint-rules/no-curry-arrow.js.map +0 -1
- package/eslint-rules/utils.d.ts +0 -5
- package/eslint-rules/utils.d.ts.map +0 -1
- package/eslint-rules/utils.js +0 -16
- package/eslint-rules/utils.js.map +0 -1
- package/refactors/noSyncWithConstant.d.ts +0 -3
- package/refactors/noSyncWithConstant.d.ts.map +0 -1
- package/refactors/noSyncWithConstant.js +0 -43
- package/refactors/noSyncWithConstant.js.map +0 -1
- package/refactors/removeCurryArrow.d.ts +0 -3
- package/refactors/removeCurryArrow.d.ts.map +0 -1
- package/refactors/removeCurryArrow.js +0 -33
- package/refactors/removeCurryArrow.js.map +0 -1
- package/utils.d.ts +0 -17
- package/utils.d.ts.map +0 -1
- package/utils.js.map +0 -1
|
@@ -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;
|
|
@@ -46,20 +123,6 @@ export function asPipeArguments(ts) {
|
|
|
46
123
|
export function isPipeableCallExpression(ts) {
|
|
47
124
|
return node => O.isSome(asPipeableCallExpression(ts)(node));
|
|
48
125
|
}
|
|
49
|
-
export function isCombinatorCall(ts) {
|
|
50
|
-
return (moduleIdentifier, moduleMethodName) => node => {
|
|
51
|
-
if (!ts.isCallExpression(node)) return false;
|
|
52
|
-
const left = node.expression;
|
|
53
|
-
if (!ts.isPropertyAccessExpression(left)) return false;
|
|
54
|
-
const leftModule = left.expression;
|
|
55
|
-
const leftName = left.name;
|
|
56
|
-
if (!ts.isIdentifier(leftModule)) return false;
|
|
57
|
-
if (leftModule.text !== moduleIdentifier) return false;
|
|
58
|
-
if (!ts.isIdentifier(leftName)) return false;
|
|
59
|
-
if (leftName.text !== moduleMethodName) return false;
|
|
60
|
-
return true;
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
126
|
export function findModuleImportIdentifierName(ts) {
|
|
64
127
|
return (sourceFile, moduleName) => {
|
|
65
128
|
return O.fromNullable(ts.forEachChild(sourceFile, node => {
|
|
@@ -76,27 +139,6 @@ export function findModuleImportIdentifierName(ts) {
|
|
|
76
139
|
}));
|
|
77
140
|
};
|
|
78
141
|
}
|
|
79
|
-
export function isCurryArrow(ts) {
|
|
80
|
-
return arrow => {
|
|
81
|
-
if (!ts.isArrowFunction(arrow)) return false;
|
|
82
|
-
if (arrow.parameters.length !== 1) return false;
|
|
83
|
-
const parameter = arrow.parameters[0];
|
|
84
|
-
const parameterName = parameter.name;
|
|
85
|
-
if (!ts.isIdentifier(parameterName)) return false;
|
|
86
|
-
const body = arrow.body;
|
|
87
|
-
if (!ts.isCallExpression(body)) return false;
|
|
88
|
-
const args = body.arguments;
|
|
89
|
-
if (args.length !== 1) return false;
|
|
90
|
-
const identifier = args[0];
|
|
91
|
-
if (!ts.isIdentifier(identifier)) return false;
|
|
92
|
-
return identifier.text === parameterName.text;
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
export function isLiteralConstantValue(ts) {
|
|
96
|
-
return node => {
|
|
97
|
-
return ts.isStringLiteral(node) || ts.isNumericLiteral(node) || node.kind === ts.SyntaxKind.TrueKeyword || node.kind === ts.SyntaxKind.FalseKeyword || node.kind === ts.SyntaxKind.NullKeyword;
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
142
|
export function transformAsyncAwaitToEffectGen(ts) {
|
|
101
143
|
return (node, effectName, onAwait) => {
|
|
102
144
|
function visitor(_) {
|
|
@@ -156,4 +198,4 @@ export function removeReturnTypeAnnotation(ts, changes) {
|
|
|
156
198
|
export function getEffectModuleIdentifier(ts) {
|
|
157
199
|
return sourceFile => pipe(findModuleImportIdentifierName(ts)(sourceFile, "@effect/io/Effect"), O.orElse(findModuleImportIdentifierName(ts)(sourceFile, "@effect/io/Effect")), O.getOrElse(() => "Effect"));
|
|
158
200
|
}
|
|
159
|
-
//# sourceMappingURL=
|
|
201
|
+
//# 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","findModuleImportIdentifierName","moduleName","isImportDeclaration","moduleSpecifier","importClause","namedBindings","isNamespaceImport","name","transformAsyncAwaitToEffectGen","effectName","onAwait","_","isAwaitExpression","visitEachChild","nullTransformationContext","factory","createYieldExpression","createToken","SyntaxKind","AsteriskToken","createCallExpression","createIdentifier","generatorBody","body","generator","createFunctionExpression","createParameterDeclaration","effectGenCallExp","createPropertyAccessExpression","currentFlags","ModifierFlags","Async","newModifiers","createModifiersFromModifierFlags","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"],"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]}
|
package/index.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var _index2 = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/index"));
|
|
8
|
-
var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fp-ts/data/Chunk"));
|
|
9
|
-
var _Function = /*#__PURE__*/require("@fp-ts/data/Function");
|
|
10
|
-
var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fp-ts/data/Option"));
|
|
11
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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"));
|
|
12
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); }
|
|
13
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 }; }
|
|
14
10
|
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
|
|
15
11
|
function init(modules) {
|
|
16
12
|
const ts = modules.typescript;
|
|
@@ -22,54 +18,20 @@ function init(modules) {
|
|
|
22
18
|
// @ts-expect-error
|
|
23
19
|
proxy[k] = (...args) => languageService[k].apply(languageService, args);
|
|
24
20
|
}
|
|
25
|
-
function applyConfiguredDiagnosticCategory(diagnostic) {
|
|
26
|
-
const config = (0, _config.parseLanguageServicePluginConfig)(info.config);
|
|
27
|
-
const category = config.diagnostics[diagnostic.code] || diagnostic.category;
|
|
28
|
-
return {
|
|
29
|
-
...diagnostic,
|
|
30
|
-
category
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
function toTsDiagnosticCategory(category) {
|
|
34
|
-
return {
|
|
35
|
-
none: ts.DiagnosticCategory.Suggestion,
|
|
36
|
-
suggestion: ts.DiagnosticCategory.Suggestion,
|
|
37
|
-
warning: ts.DiagnosticCategory.Warning,
|
|
38
|
-
error: ts.DiagnosticCategory.Error
|
|
39
|
-
}[category];
|
|
40
|
-
}
|
|
41
|
-
proxy.getSuggestionDiagnostics = (...args) => {
|
|
42
|
-
const suggestionDiagnostics = languageService.getSuggestionDiagnostics(...args);
|
|
43
|
-
const [fileName] = args;
|
|
44
|
-
const program = languageService.getProgram();
|
|
45
|
-
if (program) {
|
|
46
|
-
const effectDiagnostics = (0, _Function.pipe)(AST.getSourceFile(fileName), T.flatMap(sourceFile => (0, _Function.pipe)(Object.values(_index.default).map(applyConfiguredDiagnosticCategory).filter(_ => _.category !== "none"), T.forEachPar(diagnostic => (0, _Function.pipe)(diagnostic.apply(sourceFile), T.map(Ch.map(_ => ({
|
|
47
|
-
file: sourceFile,
|
|
48
|
-
start: _.node.pos,
|
|
49
|
-
length: _.node.end - _.node.pos,
|
|
50
|
-
messageText: _.messageText,
|
|
51
|
-
category: toTsDiagnosticCategory(diagnostic.category),
|
|
52
|
-
code: diagnostic.code,
|
|
53
|
-
source: "effect"
|
|
54
|
-
}))))))), T.map(Ch.flatten), T.map(e => Array.from(e)), T.provideService(AST.TypeScriptProgram)(program), T.provideService(AST.TypeScriptApi)(modules.typescript), T.unsafeRunSync);
|
|
55
|
-
return suggestionDiagnostics.concat(effectDiagnostics);
|
|
56
|
-
}
|
|
57
|
-
return suggestionDiagnostics;
|
|
58
|
-
};
|
|
59
21
|
proxy.getApplicableRefactors = (...args) => {
|
|
60
22
|
const applicableRefactors = languageService.getApplicableRefactors(...args);
|
|
61
23
|
const [fileName, positionOrRange] = args;
|
|
62
24
|
const program = languageService.getProgram();
|
|
63
25
|
if (program) {
|
|
64
26
|
const textRange = AST.toTextRange(positionOrRange);
|
|
65
|
-
const effectRefactors = (0, _Function.pipe)(AST.getSourceFile(fileName),
|
|
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(_ => ({
|
|
66
28
|
name: refactor.name,
|
|
67
29
|
description: refactor.description,
|
|
68
30
|
actions: [{
|
|
69
31
|
name: refactor.name,
|
|
70
32
|
description: _.description
|
|
71
33
|
}]
|
|
72
|
-
}))))
|
|
34
|
+
})))), _ => _.reduce((arr, maybeRefactor) => arr.concat(O.isSome(maybeRefactor) ? [maybeRefactor.value] : []), [])));
|
|
73
35
|
info.project.projectService.logger.info("[@effect/language-service] possible refactors are " + JSON.stringify(effectRefactors));
|
|
74
36
|
return applicableRefactors.concat(effectRefactors);
|
|
75
37
|
}
|
|
@@ -78,28 +40,26 @@ function init(modules) {
|
|
|
78
40
|
proxy.getEditsForRefactor = (fileName, formatOptions, positionOrRange, refactorName, actionName, preferences, ...args) => {
|
|
79
41
|
const program = languageService.getProgram();
|
|
80
42
|
if (program) {
|
|
81
|
-
for (const refactor of Object.values(
|
|
43
|
+
for (const refactor of Object.values(_index.default)) {
|
|
82
44
|
if (refactor.name === refactorName) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
info.project.projectService.logger.info("[@effect/language-service] requested refactor " + refactorName + " is not applicable");
|
|
89
|
-
return {
|
|
90
|
-
edits: []
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
const formatContext = ts.formatting.getFormatContext(formatOptions, info.languageServiceHost);
|
|
94
|
-
const edits = ts.textChanges.ChangeTracker.with({
|
|
95
|
-
formatContext,
|
|
96
|
-
host: info.languageServiceHost,
|
|
97
|
-
preferences: preferences || {}
|
|
98
|
-
}, changeTracker => (0, _Function.pipe)(possibleRefactor.value.apply, T.provideService(AST.ChangeTrackerApi)(changeTracker), T.provideService(AST.TypeScriptApi)(modules.typescript), T.provideService(AST.TypeScriptProgram)(program), T.unsafeRunSync));
|
|
45
|
+
const sourceFile = AST.getSourceFile(program)(fileName);
|
|
46
|
+
const textRange = AST.toTextRange(positionOrRange);
|
|
47
|
+
const possibleRefactor = refactor.apply(modules.typescript, program)(sourceFile, textRange);
|
|
48
|
+
if (O.isNone(possibleRefactor)) {
|
|
49
|
+
info.project.projectService.logger.info("[@effect/language-service] requested refactor " + refactorName + " is not applicable");
|
|
99
50
|
return {
|
|
100
|
-
edits
|
|
51
|
+
edits: []
|
|
101
52
|
};
|
|
102
|
-
}
|
|
53
|
+
}
|
|
54
|
+
const formatContext = ts.formatting.getFormatContext(formatOptions, info.languageServiceHost);
|
|
55
|
+
const edits = ts.textChanges.ChangeTracker.with({
|
|
56
|
+
formatContext,
|
|
57
|
+
host: info.languageServiceHost,
|
|
58
|
+
preferences: preferences || {}
|
|
59
|
+
}, changeTracker => possibleRefactor.value.apply(changeTracker));
|
|
60
|
+
return {
|
|
61
|
+
edits
|
|
62
|
+
};
|
|
103
63
|
}
|
|
104
64
|
}
|
|
105
65
|
}
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":";;
|
|
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","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]}
|
package/package.json
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/language-service",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/Effect-TS/language-service.git"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@effect/io": "~0.0.32",
|
|
11
|
-
"@effect/printer": "~0.1.11",
|
|
12
10
|
"@fp-ts/core": "~0.0.9",
|
|
13
11
|
"@fp-ts/data": "~0.0.22"
|
|
14
12
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addPipe.d.ts","sourceRoot":"","sources":["../../../src/refactors/addPipe.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"addPipe.d.ts","sourceRoot":"","sources":["../../../src/refactors/addPipe.ts"],"names":[],"mappings":";AAMA,wBA2BE"}
|