@effect/language-service 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +59 -0
  2. package/_mjs/ast.mjs +80 -0
  3. package/_mjs/ast.mjs.map +1 -0
  4. package/_mjs/config.mjs +24 -0
  5. package/_mjs/config.mjs.map +1 -0
  6. package/_mjs/diagnostics/definition.mjs +4 -0
  7. package/_mjs/diagnostics/definition.mjs.map +1 -0
  8. package/_mjs/diagnostics/ensureGetCallTrace.mjs +49 -0
  9. package/_mjs/diagnostics/ensureGetCallTrace.mjs.map +1 -0
  10. package/_mjs/diagnostics/index.mjs +9 -0
  11. package/_mjs/diagnostics/index.mjs.map +1 -0
  12. package/_mjs/diagnostics/noSyncWithConstant.mjs +36 -0
  13. package/_mjs/diagnostics/noSyncWithConstant.mjs.map +1 -0
  14. package/_mjs/diagnostics/removeCurryArrow.mjs +18 -0
  15. package/_mjs/diagnostics/removeCurryArrow.mjs.map +1 -0
  16. package/_mjs/index.mjs +111 -0
  17. package/_mjs/index.mjs.map +1 -0
  18. package/_mjs/refactors/addPipe.mjs +24 -0
  19. package/_mjs/refactors/addPipe.mjs.map +1 -0
  20. package/_mjs/refactors/asyncAwaitToGen.mjs +25 -0
  21. package/_mjs/refactors/asyncAwaitToGen.mjs.map +1 -0
  22. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs +30 -0
  23. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs.map +1 -0
  24. package/_mjs/refactors/definition.mjs +4 -0
  25. package/_mjs/refactors/definition.mjs.map +1 -0
  26. package/_mjs/refactors/functionToArrow.mjs +43 -0
  27. package/_mjs/refactors/functionToArrow.mjs.map +1 -0
  28. package/_mjs/refactors/index.mjs +19 -0
  29. package/_mjs/refactors/index.mjs.map +1 -0
  30. package/_mjs/refactors/removeCurryArrow.mjs +24 -0
  31. package/_mjs/refactors/removeCurryArrow.mjs.map +1 -0
  32. package/_mjs/refactors/removePipe.mjs +23 -0
  33. package/_mjs/refactors/removePipe.mjs.map +1 -0
  34. package/_mjs/refactors/toggleReturnTypeAnnotation.mjs +44 -0
  35. package/_mjs/refactors/toggleReturnTypeAnnotation.mjs.map +1 -0
  36. package/_mjs/refactors/toggleTypeAnnotation.mjs +37 -0
  37. package/_mjs/refactors/toggleTypeAnnotation.mjs.map +1 -0
  38. package/_mjs/utils.mjs +146 -0
  39. package/_mjs/utils.mjs.map +1 -0
  40. package/ast.d.ts +116 -0
  41. package/ast.d.ts.map +1 -0
  42. package/ast.js +100 -0
  43. package/ast.js.map +1 -0
  44. package/config.d.ts +10 -0
  45. package/config.d.ts.map +1 -0
  46. package/config.js +31 -0
  47. package/config.js.map +1 -0
  48. package/diagnostics/definition.d.ts +15 -0
  49. package/diagnostics/definition.d.ts.map +1 -0
  50. package/diagnostics/definition.js +10 -0
  51. package/diagnostics/definition.js.map +1 -0
  52. package/diagnostics/ensureGetCallTrace.d.ts +3 -0
  53. package/diagnostics/ensureGetCallTrace.d.ts.map +1 -0
  54. package/diagnostics/ensureGetCallTrace.js +58 -0
  55. package/diagnostics/ensureGetCallTrace.js.map +1 -0
  56. package/diagnostics/index.d.ts +7 -0
  57. package/diagnostics/index.d.ts.map +1 -0
  58. package/diagnostics/index.js +17 -0
  59. package/diagnostics/index.js.map +1 -0
  60. package/diagnostics/noSyncWithConstant.d.ts +3 -0
  61. package/diagnostics/noSyncWithConstant.d.ts.map +1 -0
  62. package/diagnostics/noSyncWithConstant.js +45 -0
  63. package/diagnostics/noSyncWithConstant.js.map +1 -0
  64. package/diagnostics/removeCurryArrow.d.ts +3 -0
  65. package/diagnostics/removeCurryArrow.d.ts.map +1 -0
  66. package/diagnostics/removeCurryArrow.js +27 -0
  67. package/diagnostics/removeCurryArrow.js.map +1 -0
  68. package/index.d.ts +2 -0
  69. package/index.d.ts.map +1 -0
  70. package/index.js +116 -0
  71. package/index.js.map +1 -0
  72. package/package.json +43 -0
  73. package/refactors/addPipe.d.ts +3 -0
  74. package/refactors/addPipe.d.ts.map +1 -0
  75. package/refactors/addPipe.js +33 -0
  76. package/refactors/addPipe.js.map +1 -0
  77. package/refactors/asyncAwaitToGen.d.ts +3 -0
  78. package/refactors/asyncAwaitToGen.d.ts.map +1 -0
  79. package/refactors/asyncAwaitToGen.js +34 -0
  80. package/refactors/asyncAwaitToGen.js.map +1 -0
  81. package/refactors/asyncAwaitToGenTryPromise.d.ts +3 -0
  82. package/refactors/asyncAwaitToGenTryPromise.d.ts.map +1 -0
  83. package/refactors/asyncAwaitToGenTryPromise.js +39 -0
  84. package/refactors/asyncAwaitToGenTryPromise.js.map +1 -0
  85. package/refactors/definition.d.ts +13 -0
  86. package/refactors/definition.d.ts.map +1 -0
  87. package/refactors/definition.js +10 -0
  88. package/refactors/definition.js.map +1 -0
  89. package/refactors/functionToArrow.d.ts +3 -0
  90. package/refactors/functionToArrow.d.ts.map +1 -0
  91. package/refactors/functionToArrow.js +52 -0
  92. package/refactors/functionToArrow.js.map +1 -0
  93. package/refactors/index.d.ts +12 -0
  94. package/refactors/index.d.ts.map +1 -0
  95. package/refactors/index.js +27 -0
  96. package/refactors/index.js.map +1 -0
  97. package/refactors/removeCurryArrow.d.ts +3 -0
  98. package/refactors/removeCurryArrow.d.ts.map +1 -0
  99. package/refactors/removeCurryArrow.js +33 -0
  100. package/refactors/removeCurryArrow.js.map +1 -0
  101. package/refactors/removePipe.d.ts +3 -0
  102. package/refactors/removePipe.d.ts.map +1 -0
  103. package/refactors/removePipe.js +32 -0
  104. package/refactors/removePipe.js.map +1 -0
  105. package/refactors/toggleReturnTypeAnnotation.d.ts +3 -0
  106. package/refactors/toggleReturnTypeAnnotation.d.ts.map +1 -0
  107. package/refactors/toggleReturnTypeAnnotation.js +53 -0
  108. package/refactors/toggleReturnTypeAnnotation.js.map +1 -0
  109. package/refactors/toggleTypeAnnotation.d.ts +3 -0
  110. package/refactors/toggleTypeAnnotation.d.ts.map +1 -0
  111. package/refactors/toggleTypeAnnotation.js +46 -0
  112. package/refactors/toggleTypeAnnotation.js.map +1 -0
  113. package/utils.d.ts +15 -0
  114. package/utils.d.ts.map +1 -0
  115. package/utils.js +163 -0
  116. package/utils.js.map +1 -0
package/config.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parseLanguageServicePluginConfig = void 0;
7
+ function literal(...types) {
8
+ return def => value => types.indexOf(value) > -1 ? value : def;
9
+ }
10
+ function record(type) {
11
+ return value => {
12
+ if (typeof value !== "object" || value === null) return {};
13
+ return Object.keys(value).reduce((obj, key) => ({
14
+ ...obj,
15
+ [key]: type(value[key])
16
+ }), {});
17
+ };
18
+ }
19
+ function struct(types) {
20
+ return value => {
21
+ return Object.keys(types).reduce((obj, key) => ({
22
+ ...obj,
23
+ [key]: types[key](typeof value !== "object" || value === null ? null : value[key])
24
+ }), {});
25
+ };
26
+ }
27
+ const parseLanguageServicePluginConfig = /*#__PURE__*/struct({
28
+ diagnostics: /*#__PURE__*/record( /*#__PURE__*/literal("none", "suggestion", "warning", "error")("none"))
29
+ });
30
+ exports.parseLanguageServicePluginConfig = parseLanguageServicePluginConfig;
31
+ //# sourceMappingURL=config.js.map
package/config.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","mappings":";;;;;;AAQA,SAASA,OAAO,CAA+B,GAAGC,KAAQ;EACxD,OAAQC,GAAc,IAA0BC,KAAK,IAAKF,KAAK,CAACG,OAAO,CAACD,KAAY,CAAC,GAAG,CAAC,CAAC,GAAGA,KAAY,GAAGD,GAAG;AACjH;AAEA,SAASG,MAAM,CAAIC,IAAgB;EACjC,OAAQH,KAAc,IAAI;IACxB,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE,OAAO,EAAE;IAC1D,OAAOI,MAAM,CAACC,IAAI,CAACL,KAAK,CAAC,CAACM,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,MAAM;MAAE,GAAGD,GAAG;MAAE,CAACC,GAAG,GAAGL,IAAI,CAACH,KAAK,CAACQ,GAAG,CAAC;IAAC,CAAE,CAAC,EAAE,EAAE,CAAC;EAC3F,CAAC;AACH;AAEA,SAASC,MAAM,CAA6CX,KAAQ;EAClE,OAAQE,KAAc,IAAI;IACxB,OAAOI,MAAM,CAACC,IAAI,CAACP,KAAK,CAAC,CAACQ,MAAM,CAC9B,CAACC,GAAG,EAAEC,GAAG,MAAM;MAAE,GAAGD,GAAG;MAAE,CAACC,GAAG,GAAGV,KAAK,CAACU,GAAG,CAAE,CAAC,OAAOR,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,GAAG,IAAI,GAAGA,KAAK,CAACQ,GAAG,CAAC;IAAC,CAAE,CAAC,EAC/G,EAA0C,CAC3C;EACH,CAAC;AACH;AAEO,MAAME,gCAAgC,gBAAGD,MAAM,CAAC;EACrDE,WAAW,eAAET,MAAM,eAACL,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;CAC9E,CAAC;AAAA","names":["literal","types","def","value","indexOf","record","type","Object","keys","reduce","obj","key","struct","parseLanguageServicePluginConfig","diagnostics"],"sourceRoot":"","sources":["../../src/config.ts"],"sourcesContent":[null]}
@@ -0,0 +1,15 @@
1
+ import type * as T from "@effect/core/io/Effect";
2
+ import type * as Ch from "@tsplus/stdlib/collections/Chunk";
3
+ import type ts from "typescript/lib/tsserverlibrary";
4
+ export interface DiagnosticDefinitionMessage {
5
+ node: ts.Node;
6
+ messageText: string;
7
+ }
8
+ export declare type DiagnosticDefinitionMessageCategory = "none" | "suggestion" | "warning" | "error";
9
+ export interface DiagnosticDefinition {
10
+ code: number;
11
+ category: DiagnosticDefinitionMessageCategory;
12
+ apply: <E>(sourceFile: ts.SourceFile) => T.Effect<typeof ts | ts.Program, E, Ch.Chunk<DiagnosticDefinitionMessage>>;
13
+ }
14
+ export declare function createDiagnostic(definition: DiagnosticDefinition): DiagnosticDefinition;
15
+ //# sourceMappingURL=definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,KAAK,EAAE,MAAM,kCAAkC,CAAA;AAE3D,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,oBAAY,mCAAmC,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,CAAA;AAE7F,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,mCAAmC,CAAA;IAC7C,KAAK,EAAE,CAAC,CAAC,EACP,UAAU,EAAE,EAAE,CAAC,UAAU,KACtB,CAAC,CAAC,MAAM,CACX,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EACtB,CAAC,EACD,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CACtC,CAAA;CACF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,wBAEhE"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createDiagnostic = createDiagnostic;
7
+ function createDiagnostic(definition) {
8
+ return definition;
9
+ }
10
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","mappings":";;;;;;AAwBM,SAAUA,gBAAgB,CAACC,UAAgC;EAC/D,OAAOA,UAAU;AACnB","names":["createDiagnostic","definition"],"sourceRoot":"","sources":["../../../src/diagnostics/definition.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/diagnostics/definition").DiagnosticDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=ensureGetCallTrace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureGetCallTrace.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/ensureGetCallTrace.ts"],"names":[],"mappings":";AAMA,wBA0DE"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
+ var _definition = /*#__PURE__*/require("@effect/language-service/diagnostics/definition");
10
+ var _Function = /*#__PURE__*/require("@fp-ts/data/Function");
11
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
12
+ 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
+ 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; }
14
+ var _default = /*#__PURE__*/(0, _definition.createDiagnostic)({
15
+ code: 1003,
16
+ category: "none",
17
+ apply: sourceFile => T.gen(function* ($) {
18
+ const ts = yield* $(T.service(AST.TypeScriptApi));
19
+ const program = yield* $(T.service(AST.TypeScriptProgram));
20
+ const typeChecker = program.getTypeChecker();
21
+ function isEffectType(type) {
22
+ const symbol = type.getSymbol();
23
+ if (!symbol) return false;
24
+ return symbol.getDocumentationComment(typeChecker).some(i => i.text.indexOf("Effects model resourceful interaction") > -1);
25
+ }
26
+ function isPipeableCombinator(type) {
27
+ const signatures = type.getCallSignatures();
28
+ if (signatures.length === 0) return false;
29
+ return signatures.some(isPipeableCallSignatureReturningEffect);
30
+ }
31
+ function isPipeableCallSignatureReturningEffect(signature) {
32
+ if (signature.getParameters().length !== 1) return false;
33
+ return isEffectType(signature.getReturnType());
34
+ }
35
+ function shouldBeTraced(signature) {
36
+ const returnType = signature.getReturnType();
37
+ return isEffectType(returnType) || isPipeableCombinator(returnType);
38
+ }
39
+ function isGetCallTraceCallExpression(node) {
40
+ if (!ts.isCallExpression(node)) return false;
41
+ const expression = node.expression;
42
+ if (!ts.isIdentifier(expression)) return false;
43
+ return expression.text === "getCallTrace";
44
+ }
45
+ return (0, _Function.pipe)(AST.collectAll(ts)(sourceFile, ts.isArrowFunction), Ch.concat(AST.collectAll(ts)(sourceFile, ts.isFunctionDeclaration)), Ch.filter(node => !!node.body), Ch.filter(node => typeChecker.getTypeAtLocation(node).getCallSignatures().some(shouldBeTraced)), Ch.filter(node => {
46
+ const body = node.body;
47
+ if (!ts.isBlock(body)) return true;
48
+ const firstStatement = body.statements[0];
49
+ if (!firstStatement) return true;
50
+ return Ch.isEmpty(AST.collectAll(ts)(firstStatement, isGetCallTraceCallExpression));
51
+ }), Ch.map(node => ({
52
+ node,
53
+ messageText: `This function should be traced. getCallTrace() should be the first line of the body.`
54
+ })));
55
+ })
56
+ });
57
+ exports.default = _default;
58
+ //# sourceMappingURL=ensureGetCallTrace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensureGetCallTrace.js","mappings":"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","names":["code","category","apply","sourceFile","T","gen","$","ts","service","AST","TypeScriptApi","program","TypeScriptProgram","typeChecker","getTypeChecker","isEffectType","type","symbol","getSymbol","getDocumentationComment","some","i","text","indexOf","isPipeableCombinator","signatures","getCallSignatures","length","isPipeableCallSignatureReturningEffect","signature","getParameters","getReturnType","shouldBeTraced","returnType","isGetCallTraceCallExpression","node","isCallExpression","expression","isIdentifier","collectAll","isArrowFunction","Ch","concat","isFunctionDeclaration","filter","body","getTypeAtLocation","isBlock","firstStatement","statements","isEmpty","map","messageText"],"sourceRoot":"","sources":["../../../src/diagnostics/ensureGetCallTrace.ts"],"sourcesContent":[null]}
@@ -0,0 +1,7 @@
1
+ declare const _default: {
2
+ removeCurryArrow: import("./definition").DiagnosticDefinition;
3
+ noSyncWithConstant: import("./definition").DiagnosticDefinition;
4
+ ensureGetCallTrace: import("./definition").DiagnosticDefinition;
5
+ };
6
+ export default _default;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/index.ts"],"names":[],"mappings":";;;;;AAIA,wBAA2E"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _ensureGetCallTrace = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/diagnostics/ensureGetCallTrace"));
8
+ var _noSyncWithConstant = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/diagnostics/noSyncWithConstant"));
9
+ var _removeCurryArrow = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/diagnostics/removeCurryArrow"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ var _default = {
12
+ removeCurryArrow: _removeCurryArrow.default,
13
+ noSyncWithConstant: _noSyncWithConstant.default,
14
+ ensureGetCallTrace: _ensureGetCallTrace.default
15
+ };
16
+ exports.default = _default;
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","mappings":";;;;;;AAAA;AACA;AACA;AAAoF;AAAA,eAErE;EAAEA,gBAAgB,EAAhBA,yBAAgB;EAAEC,kBAAkB,EAAlBA,2BAAkB;EAAEC,kBAAkB,EAAlBA;AAAkB,CAAE;AAAA","names":["removeCurryArrow","noSyncWithConstant","ensureGetCallTrace"],"sourceRoot":"","sources":["../../../src/diagnostics/index.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/diagnostics/definition").DiagnosticDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=noSyncWithConstant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noSyncWithConstant.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/noSyncWithConstant.ts"],"names":[],"mappings":";AAaA,wBAgDE"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
+ var _definition = /*#__PURE__*/require("@effect/language-service/diagnostics/definition");
10
+ var _utils = /*#__PURE__*/require("@effect/language-service/utils");
11
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
12
+ var _Function = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
13
+ var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ var _default = /*#__PURE__*/(0, _definition.createDiagnostic)({
17
+ code: 1002,
18
+ category: "warning",
19
+ apply: sourceFile => T.gen(function* ($) {
20
+ const ts = yield* $(T.service(AST.TypeScriptApi));
21
+ const effectIdentifier = (0, _Function.pipe)((0, _utils.findModuleImportIdentifierName)(ts)(sourceFile, "@effect/core/io/Effect"), O.getOrElse(() => "Effect"));
22
+ const methodsMap = {
23
+ sync: "succeed",
24
+ failSync: "fail",
25
+ dieSync: "die"
26
+ };
27
+ let result = Ch.empty();
28
+ for (const methodName of Object.keys(methodsMap)) {
29
+ const suggestedMethodName = methodsMap[methodName];
30
+ result = (0, _Function.pipe)(result, Ch.concat((0, _Function.pipe)(AST.collectAll(ts)(sourceFile, (0, _utils.isCombinatorCall)(ts)(effectIdentifier, methodName)), Ch.filter(node => {
31
+ if (node.arguments.length !== 1) return false;
32
+ const arg = node.arguments[0];
33
+ if (!ts.isArrowFunction(arg)) return false;
34
+ if (!(0, _utils.isLiteralConstantValue)(ts)(arg.body)) return false;
35
+ return true;
36
+ }), Ch.map(node => ({
37
+ node,
38
+ messageText: `Value is constant, instead of using ${methodName} you could use ${suggestedMethodName}.`
39
+ })))));
40
+ }
41
+ return result;
42
+ })
43
+ });
44
+ exports.default = _default;
45
+ //# sourceMappingURL=noSyncWithConstant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noSyncWithConstant.js","mappings":";;;;;;AAAA;AACA;AAEA;AACA;AAKA;AACA;AACA;AAA8C;AAAA;AAAA,4BAE/B,gCAAgB,EAAC;EAC9BA,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAE,SAAS;EACnBC,KAAK,EAAGC,UAAU,IAChBC,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACC,aAAa,CAAC,CAAC;IAEjD,MAAMC,gBAAgB,GAAG,kBAAI,EAC3B,yCAA8B,EAACJ,EAAE,CAAC,CAACJ,UAAU,EAAE,wBAAwB,CAAC,EACxES,CAAC,CAACC,SAAS,CACT,MAAM,QAAQ,CACf,CACF;IAED,MAAMC,UAAU,GAAG;MACjBC,IAAI,EAAE,SAAS;MACfC,QAAQ,EAAE,MAAM;MAChBC,OAAO,EAAE;KACV;IAED,IAAIC,MAAM,GAA0CC,EAAE,CAACC,KAAK,EAAE;IAE9D,KAAK,MAAMC,UAAU,IAAIC,MAAM,CAACC,IAAI,CAACT,UAAU,CAAC,EAAE;MAChD,MAAMU,mBAAmB,GAAWV,UAAU,CAACO,UAAU,CAAE;MAE3DH,MAAM,GAAG,kBAAI,EACXA,MAAM,EACNC,EAAE,CAACM,MAAM,CACP,kBAAI,EACFhB,GAAG,CAACiB,UAAU,CAACnB,EAAE,CAAC,CAACJ,UAAU,EAAE,2BAAgB,EAACI,EAAE,CAAC,CAACI,gBAAgB,EAAEU,UAAU,CAAC,CAAC,EAClFF,EAAE,CAACQ,MAAM,CAAEC,IAAI,IAAI;QACjB,IAAIA,IAAI,CAACC,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;QAC7C,MAAMC,GAAG,GAAGH,IAAI,CAACC,SAAS,CAAC,CAAC,CAAE;QAC9B,IAAI,CAACtB,EAAE,CAACyB,eAAe,CAACD,GAAG,CAAC,EAAE,OAAO,KAAK;QAC1C,IAAI,CAAC,iCAAsB,EAACxB,EAAE,CAAC,CAACwB,GAAG,CAACE,IAAI,CAAC,EAAE,OAAO,KAAK;QACvD,OAAO,IAAI;MACb,CAAC,CAAC,EACFd,EAAE,CAACe,GAAG,CAAEN,IAAI,KAAM;QAChBA,IAAI;QACJO,WAAW,EAAE,uCAAuCd,UAAU,kBAAkBG,mBAAmB;OACpG,CAAC,CAAC,CACJ,CACF,CACF;;IAGH,OAAON,MAAM;EACf,CAAC;CACJ,CAAC;AAAA","names":["code","category","apply","sourceFile","T","gen","$","ts","service","AST","TypeScriptApi","effectIdentifier","O","getOrElse","methodsMap","sync","failSync","dieSync","result","Ch","empty","methodName","Object","keys","suggestedMethodName","concat","collectAll","filter","node","arguments","length","arg","isArrowFunction","body","map","messageText"],"sourceRoot":"","sources":["../../../src/diagnostics/noSyncWithConstant.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/diagnostics/definition").DiagnosticDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=removeCurryArrow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeCurryArrow.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/removeCurryArrow.ts"],"names":[],"mappings":";AAOA,wBAeE"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
+ var _definition = /*#__PURE__*/require("@effect/language-service/diagnostics/definition");
10
+ var _utils = /*#__PURE__*/require("@effect/language-service/utils");
11
+ var _Function = /*#__PURE__*/require("@fp-ts/data/Function");
12
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ var _default = /*#__PURE__*/(0, _definition.createDiagnostic)({
16
+ code: 1001,
17
+ category: "suggestion",
18
+ apply: sourceFile => T.gen(function* ($) {
19
+ const ts = yield* $(T.service(AST.TypeScriptApi));
20
+ return (0, _Function.pipe)(AST.collectAll(ts)(sourceFile, (0, _utils.isCurryArrow)(ts)), Ch.map(node => ({
21
+ node,
22
+ messageText: "This arrow function may be not needed."
23
+ })));
24
+ })
25
+ });
26
+ exports.default = _default;
27
+ //# sourceMappingURL=removeCurryArrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeCurryArrow.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAAsD;AAAA;AAAA,4BAEvC,gCAAgB,EAAC;EAC9BA,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAE,YAAY;EACtBC,KAAK,EAAGC,UAAU,IAChBC,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACC,aAAa,CAAC,CAAC;IAEjD,OAAO,kBAAI,EACTD,GAAG,CAACE,UAAU,CAACJ,EAAE,CAAC,CAACJ,UAAU,EAAE,uBAAY,EAACI,EAAE,CAAC,CAAC,EAChDK,EAAE,CAACC,GAAG,CAAEC,IAAI,KAAM;MAChBA,IAAI;MACJC,WAAW,EAAE;KACd,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC;AAAA","names":["code","category","apply","sourceFile","T","gen","$","ts","service","AST","TypeScriptApi","collectAll","Ch","map","node","messageText"],"sourceRoot":"","sources":["../../../src/diagnostics/removeCurryArrow.ts"],"sourcesContent":[null]}
package/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
package/index.js ADDED
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+
3
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
4
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
5
+ var _config = /*#__PURE__*/require("@effect/language-service/config");
6
+ var _index = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/diagnostics/index"));
7
+ var _index2 = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/index"));
8
+ var _Function = /*#__PURE__*/require("@fp-ts/data/Function");
9
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
10
+ var _Function2 = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
11
+ var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ // eslint-disable-next-line @typescript-eslint/consistent-type-imports
16
+ function init(modules) {
17
+ const ts = modules.typescript;
18
+ function create(info) {
19
+ const languageService = info.languageService;
20
+ // create the proxy
21
+ const proxy = Object.create(null);
22
+ for (const k of Object.keys(info.languageService)) {
23
+ // @ts-expect-error
24
+ proxy[k] = (...args) => languageService[k].apply(languageService, args);
25
+ }
26
+ function applyConfiguredDiagnosticCategory(diagnostic) {
27
+ const config = (0, _config.parseLanguageServicePluginConfig)(info.config);
28
+ const category = config.diagnostics[diagnostic.code] || diagnostic.category;
29
+ return {
30
+ ...diagnostic,
31
+ category
32
+ };
33
+ }
34
+ function toTsDiagnosticCategory(category) {
35
+ return {
36
+ none: ts.DiagnosticCategory.Suggestion,
37
+ suggestion: ts.DiagnosticCategory.Suggestion,
38
+ warning: ts.DiagnosticCategory.Warning,
39
+ error: ts.DiagnosticCategory.Error
40
+ }[category];
41
+ }
42
+ proxy.getSuggestionDiagnostics = (...args) => {
43
+ const suggestionDiagnostics = languageService.getSuggestionDiagnostics(...args);
44
+ const [fileName] = args;
45
+ const program = languageService.getProgram();
46
+ if (program) {
47
+ const effectDiagnostics = (0, _Function.pipe)(AST.getSourceFile(fileName), T.flatMap(sourceFile => T.forEachPar(Object.values(_index.default).map(applyConfiguredDiagnosticCategory).filter(_ => _.category !== "none"), diagnostic => (0, _Function.pipe)(diagnostic.apply(sourceFile), T.map(Ch.map(_ => ({
48
+ file: sourceFile,
49
+ start: _.node.pos,
50
+ length: _.node.end - _.node.pos,
51
+ messageText: _.messageText,
52
+ category: toTsDiagnosticCategory(diagnostic.category),
53
+ code: diagnostic.code,
54
+ source: "effect"
55
+ })))))), T.map(Ch.flatten), T.map(v => Array.from(v)), T.provideService(AST.TypeScriptProgram, program), T.provideService(AST.TypeScriptApi, modules.typescript), T.unsafeRunSync);
56
+ return suggestionDiagnostics.concat(effectDiagnostics);
57
+ }
58
+ return suggestionDiagnostics;
59
+ };
60
+ proxy.getApplicableRefactors = (...args) => {
61
+ const applicableRefactors = languageService.getApplicableRefactors(...args);
62
+ const [fileName, positionOrRange] = args;
63
+ const program = languageService.getProgram();
64
+ if (program) {
65
+ const textRange = AST.toTextRange(positionOrRange);
66
+ const effectRefactors = (0, _Function.pipe)(AST.getSourceFile(fileName), T.flatMap(sourceFile => T.collectAllWith(Object.values(_index2.default).map(refactor => (0, _Function.pipe)(refactor.apply(sourceFile, textRange), T.map(O.map(_ => ({
67
+ name: refactor.name,
68
+ description: refactor.description,
69
+ actions: [{
70
+ name: refactor.name,
71
+ description: _.description
72
+ }]
73
+ }))))), _Function2.identity)), T.map(v => Array.from(v)), T.provideService(AST.TypeScriptProgram, program), T.provideService(AST.TypeScriptApi, modules.typescript), T.unsafeRunSync);
74
+ info.project.projectService.logger.info("[@effect/language-service] possible refactors are " + JSON.stringify(effectRefactors));
75
+ return applicableRefactors.concat(effectRefactors);
76
+ }
77
+ return applicableRefactors;
78
+ };
79
+ proxy.getEditsForRefactor = (fileName, formatOptions, positionOrRange, refactorName, actionName, preferences, ...args) => {
80
+ const program = languageService.getProgram();
81
+ if (program) {
82
+ for (const refactor of Object.values(_index2.default)) {
83
+ if (refactor.name === refactorName) {
84
+ return (0, _Function.pipe)(T.gen(function* ($) {
85
+ const sourceFile = yield* $(AST.getSourceFile(fileName));
86
+ const textRange = AST.toTextRange(positionOrRange);
87
+ const possibleRefactor = yield* $(refactor.apply(sourceFile, textRange));
88
+ if (O.isNone(possibleRefactor)) {
89
+ info.project.projectService.logger.info("[@effect/language-service] requested refactor " + refactorName + " is not applicable");
90
+ return {
91
+ edits: []
92
+ };
93
+ }
94
+ const formatContext = ts.formatting.getFormatContext(formatOptions, info.languageServiceHost);
95
+ const edits = ts.textChanges.ChangeTracker.with({
96
+ formatContext,
97
+ host: info.languageServiceHost,
98
+ preferences: preferences || {}
99
+ }, 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));
100
+ return {
101
+ edits
102
+ };
103
+ }), T.provideService(AST.TypeScriptApi, modules.typescript), T.provideService(AST.TypeScriptProgram, program), T.unsafeRunSync);
104
+ }
105
+ }
106
+ }
107
+ return languageService.getEditsForRefactor(fileName, formatOptions, positionOrRange, refactorName, actionName, preferences, ...args);
108
+ };
109
+ return proxy;
110
+ }
111
+ return {
112
+ create
113
+ };
114
+ }
115
+ module.exports = init;
116
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
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","applyConfiguredDiagnosticCategory","diagnostic","config","category","diagnostics","code","toTsDiagnosticCategory","none","DiagnosticCategory","Suggestion","suggestion","warning","Warning","error","Error","getSuggestionDiagnostics","suggestionDiagnostics","fileName","program","getProgram","effectDiagnostics","AST","getSourceFile","T","flatMap","sourceFile","forEachPar","values","map","filter","_","Ch","file","start","node","pos","length","end","messageText","source","flatten","v","Array","from","provideService","TypeScriptProgram","TypeScriptApi","unsafeRunSync","concat","getApplicableRefactors","applicableRefactors","positionOrRange","textRange","toTextRange","effectRefactors","collectAllWith","refactors","refactor","O","name","description","actions","identity","project","projectService","logger","JSON","stringify","getEditsForRefactor","formatOptions","refactorName","actionName","preferences","gen","$","possibleRefactor","isNone","edits","formatContext","formatting","getFormatContext","languageServiceHost","textChanges","ChangeTracker","with","host","changeTracker","value","ChangeTrackerApi","module","exports"],"sourceRoot":"","sources":["../../src/index.ts"],"sourcesContent":[null]}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@effect/language-service",
3
+ "version": "0.0.0",
4
+ "license": "MIT",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/Effect-TS/language-service.git"
8
+ },
9
+ "dependencies": {
10
+ "@effect/core": "^0.0.16",
11
+ "@effect/printer": "^0.1.0",
12
+ "@fp-ts/core": "^0.0.8",
13
+ "@fp-ts/data": "^0.0.9",
14
+ "@tsplus/stdlib": "^0.2.8"
15
+ },
16
+ "main": "./index.js",
17
+ "publishConfig": {
18
+ "access": "public"
19
+ },
20
+ "sideEffects": [],
21
+ "exports": {
22
+ ".": {
23
+ "import": {
24
+ "types": "./index.d.ts",
25
+ "default": "./_mjs/index.mjs"
26
+ },
27
+ "require": {
28
+ "types": "./index.d.ts",
29
+ "default": "./index.js"
30
+ }
31
+ },
32
+ "./*": {
33
+ "import": {
34
+ "types": "./*.d.ts",
35
+ "default": "./_mjs/*.mjs"
36
+ },
37
+ "require": {
38
+ "types": "./*.d.ts",
39
+ "default": "./*.js"
40
+ }
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/refactors/definition").RefactorDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=addPipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addPipe.d.ts","sourceRoot":"","sources":["../../../src/refactors/addPipe.ts"],"names":[],"mappings":";AAQA,wBA+BE"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
+ var _definition = /*#__PURE__*/require("@effect/language-service/refactors/definition");
10
+ var _utils = /*#__PURE__*/require("@effect/language-service/utils");
11
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
12
+ var _Function = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
13
+ var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ var _default = /*#__PURE__*/(0, _definition.createRefactor)({
17
+ name: "effect/addPipe",
18
+ description: "Rewrite using pipe",
19
+ apply: (sourceFile, textRange) => T.gen(function* ($) {
20
+ const ts = yield* $(T.service(AST.TypeScriptApi));
21
+ return (0, _Function.pipe)(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.reverse, Ch.from, Ch.filter(AST.isNodeInRange(textRange)), Ch.filter((0, _utils.isPipeableCallExpression)(ts)), Ch.head, O.map(node => ({
22
+ description: `Rewrite ${AST.getHumanReadableName(sourceFile, node.expression)} to pipe`,
23
+ apply: T.gen(function* ($) {
24
+ const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
25
+ const args = (0, _utils.asPipeArguments)(ts)(node);
26
+ const newNode = ts.factory.createCallExpression(ts.factory.createIdentifier("pipe"), undefined, Array.from(args));
27
+ changeTracker.replaceNode(sourceFile, node, newNode);
28
+ })
29
+ })));
30
+ })
31
+ });
32
+ exports.default = _default;
33
+ //# sourceMappingURL=addPipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addPipe.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAA8C;AAAA;AAAA,4BAE/B,8BAAc,EAAC;EAC5BA,IAAI,EAAE,gBAAgB;EACtBC,WAAW,EAAE,oBAAoB;EACjCC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BC,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACC,aAAa,CAAC,CAAC;IAEjD,OAAO,kBAAI,EACTD,GAAG,CAACE,uBAAuB,CAACJ,EAAE,CAAC,CAACL,UAAU,EAAEC,SAAS,CAAC,EACtDS,EAAE,CAACC,OAAO,EACVD,EAAE,CAACE,IAAI,EACPF,EAAE,CAACG,MAAM,CAACN,GAAG,CAACO,aAAa,CAACb,SAAS,CAAC,CAAC,EACvCS,EAAE,CAACG,MAAM,CAAC,mCAAwB,EAACR,EAAE,CAAC,CAAC,EACvCK,EAAE,CAACK,IAAI,EACPC,CAAC,CAACC,GAAG,CAAEC,IAAI,KAAM;MACfpB,WAAW,EAAE,WAAWS,GAAG,CAACY,oBAAoB,CAACnB,UAAU,EAAEkB,IAAI,CAACE,UAAU,CAAC,UAAU;MACvFrB,KAAK,EAAEG,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMiB,aAAa,GAAG,OAAOjB,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACe,gBAAgB,CAAC,CAAC;QAC/D,MAAMC,IAAI,GAAG,0BAAe,EAAClB,EAAE,CAAC,CAACa,IAAI,CAAC;QAEtC,MAAMM,OAAO,GAAGnB,EAAE,CAACoB,OAAO,CAACC,oBAAoB,CAC7CrB,EAAE,CAACoB,OAAO,CAACE,gBAAgB,CAAC,MAAM,CAAC,EACnCC,SAAS,EACTC,KAAK,CAACjB,IAAI,CAACW,IAAI,CAAC,CACjB;QAEDF,aAAa,CAACS,WAAW,CAAC9B,UAAU,EAAEkB,IAAI,EAAEM,OAAO,CAAC;MACtD,CAAC;KACF,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC;AAAA","names":["name","description","apply","sourceFile","textRange","T","gen","$","ts","service","AST","TypeScriptApi","getNodesContainingRange","Ch","reverse","from","filter","isNodeInRange","head","O","map","node","getHumanReadableName","expression","changeTracker","ChangeTrackerApi","args","newNode","factory","createCallExpression","createIdentifier","undefined","Array","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/addPipe.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/refactors/definition").RefactorDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=asyncAwaitToGen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncAwaitToGen.d.ts","sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGen.ts"],"names":[],"mappings":";AAQA,wBAmCE"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
+ var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
+ var _definition = /*#__PURE__*/require("@effect/language-service/refactors/definition");
10
+ var _utils = /*#__PURE__*/require("@effect/language-service/utils");
11
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
12
+ var _Function = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
13
+ var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
14
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ var _default = /*#__PURE__*/(0, _definition.createRefactor)({
17
+ name: "effect/asyncAwaitToGen",
18
+ description: "Convert to Effect.gen",
19
+ apply: (sourceFile, textRange) => T.gen(function* ($) {
20
+ const ts = yield* $(T.service(AST.TypeScriptApi));
21
+ return (0, _Function.pipe)(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.filter(ts.isFunctionDeclaration), Ch.filter(node => !!node.body), Ch.filter(node => !!(ts.getCombinedModifierFlags(node) & ts.ModifierFlags.Async)), Ch.head, O.map(node => ({
22
+ description: "Rewrite to Effect.gen",
23
+ apply: T.gen(function* ($) {
24
+ const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
25
+ const importedEffectName = (0, _utils.findModuleImportIdentifierName)(ts)(sourceFile, "@effect/core/io/Effect");
26
+ const effectName = (0, _Function.pipe)(importedEffectName, O.getOrElse(() => "Effect"));
27
+ const newDeclaration = yield* $((0, _utils.transformAsyncAwaitToEffectGen)(node, effectName, expression => ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectName), "promise"), undefined, [expression])));
28
+ changeTracker.replaceNode(sourceFile, node, newDeclaration);
29
+ })
30
+ })));
31
+ })
32
+ });
33
+ exports.default = _default;
34
+ //# sourceMappingURL=asyncAwaitToGen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncAwaitToGen.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAA8C;AAAA;AAAA,4BAE/B,8BAAc,EAAC;EAC5BA,IAAI,EAAE,wBAAwB;EAC9BC,WAAW,EAAE,uBAAuB;EACpCC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BC,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACC,aAAa,CAAC,CAAC;IAEjD,OAAO,kBAAI,EACTD,GAAG,CAACE,uBAAuB,CAACJ,EAAE,CAAC,CAACL,UAAU,EAAEC,SAAS,CAAC,EACtDS,EAAE,CAACC,MAAM,CAACN,EAAE,CAACO,qBAAqB,CAAC,EACnCF,EAAE,CAACC,MAAM,CAAEE,IAAI,IAAK,CAAC,CAACA,IAAI,CAACC,IAAI,CAAC,EAChCJ,EAAE,CAACC,MAAM,CAAEE,IAAI,IAAK,CAAC,EAAER,EAAE,CAACU,wBAAwB,CAACF,IAAI,CAAC,GAAGR,EAAE,CAACW,aAAa,CAACC,KAAK,CAAC,CAAC,EACnFP,EAAE,CAACQ,IAAI,EACPC,CAAC,CAACC,GAAG,CAAEP,IAAI,KAAM;MACff,WAAW,EAAE,uBAAuB;MACpCC,KAAK,EAAEG,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMiB,aAAa,GAAG,OAAOjB,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACe,gBAAgB,CAAC,CAAC;QAC/D,MAAMC,kBAAkB,GAAI,yCAA8B,EAAClB,EAAE,CAAC,CAACL,UAAU,EAAE,wBAAwB,CAAE;QACrG,MAAMwB,UAAU,GAAG,kBAAI,EAACD,kBAAkB,EAAEJ,CAAC,CAACM,SAAS,CAAC,MAAM,QAAQ,CAAC,CAAC;QAExE,MAAMC,cAAc,GAAG,OAAOtB,CAAC,CAAC,yCAA8B,EAACS,IAAI,EAAEW,UAAU,EAAGG,UAAU,IAC1FtB,EAAE,CAACuB,OAAO,CAACC,oBAAoB,CAC7BxB,EAAE,CAACuB,OAAO,CAACE,8BAA8B,CACvCzB,EAAE,CAACuB,OAAO,CAACG,gBAAgB,CAACP,UAAU,CAAC,EACvC,SAAS,CACV,EACDQ,SAAS,EACT,CAACL,UAAU,CAAC,CACb,CAAC,CAAC;QAELN,aAAa,CAACY,WAAW,CAACjC,UAAU,EAAEa,IAAI,EAAEa,cAAc,CAAC;MAC7D,CAAC;KACF,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC;AAAA","names":["name","description","apply","sourceFile","textRange","T","gen","$","ts","service","AST","TypeScriptApi","getNodesContainingRange","Ch","filter","isFunctionDeclaration","node","body","getCombinedModifierFlags","ModifierFlags","Async","head","O","map","changeTracker","ChangeTrackerApi","importedEffectName","effectName","getOrElse","newDeclaration","expression","factory","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGen.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/refactors/definition").RefactorDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=asyncAwaitToGenTryPromise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncAwaitToGenTryPromise.d.ts","sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGenTryPromise.ts"],"names":[],"mappings":";AAQA,wBA6DE"}