@effect/language-service 0.0.2 → 0.0.3

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 (42) hide show
  1. package/README.md +1 -1
  2. package/_mjs/diagnostics/noSyncWithConstant.mjs +21 -17
  3. package/_mjs/diagnostics/noSyncWithConstant.mjs.map +1 -1
  4. package/_mjs/refactors/asyncAwaitToGen.mjs +2 -3
  5. package/_mjs/refactors/asyncAwaitToGen.mjs.map +1 -1
  6. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs +2 -3
  7. package/_mjs/refactors/asyncAwaitToGenTryPromise.mjs.map +1 -1
  8. package/_mjs/refactors/index.mjs +3 -1
  9. package/_mjs/refactors/index.mjs.map +1 -1
  10. package/_mjs/refactors/noSyncWithConstant.mjs +34 -0
  11. package/_mjs/refactors/noSyncWithConstant.mjs.map +1 -0
  12. package/_mjs/transformer.mjs +148 -0
  13. package/_mjs/transformer.mjs.map +1 -0
  14. package/_mjs/utils.mjs +4 -1
  15. package/_mjs/utils.mjs.map +1 -1
  16. package/diagnostics/noSyncWithConstant.d.ts +7 -0
  17. package/diagnostics/noSyncWithConstant.d.ts.map +1 -1
  18. package/diagnostics/noSyncWithConstant.js +23 -16
  19. package/diagnostics/noSyncWithConstant.js.map +1 -1
  20. package/package.json +1 -1
  21. package/refactors/asyncAwaitToGen.d.ts.map +1 -1
  22. package/refactors/asyncAwaitToGen.js +1 -2
  23. package/refactors/asyncAwaitToGen.js.map +1 -1
  24. package/refactors/asyncAwaitToGenTryPromise.d.ts.map +1 -1
  25. package/refactors/asyncAwaitToGenTryPromise.js +1 -2
  26. package/refactors/asyncAwaitToGenTryPromise.js.map +1 -1
  27. package/refactors/index.d.ts +1 -0
  28. package/refactors/index.d.ts.map +1 -1
  29. package/refactors/index.js +3 -1
  30. package/refactors/index.js.map +1 -1
  31. package/refactors/noSyncWithConstant.d.ts +3 -0
  32. package/refactors/noSyncWithConstant.d.ts.map +1 -0
  33. package/refactors/noSyncWithConstant.js +43 -0
  34. package/refactors/noSyncWithConstant.js.map +1 -0
  35. package/transformer.d.ts +23 -0
  36. package/transformer.d.ts.map +1 -0
  37. package/transformer.js +155 -0
  38. package/transformer.js.map +1 -0
  39. package/utils.d.ts +2 -1
  40. package/utils.d.ts.map +1 -1
  41. package/utils.js +5 -1
  42. package/utils.js.map +1 -1
package/README.md CHANGED
@@ -31,7 +31,7 @@ Accepted values are: `"none" | "suggestion" | "warning" | "error"`
31
31
  "plugins": [
32
32
  {
33
33
  "name": "@effect/language-service",
34
- "diagnostic": {
34
+ "diagnostics": {
35
35
  "1003": "warning",
36
36
  "1002": "none"
37
37
  }
@@ -1,31 +1,35 @@
1
1
  import * as T from "@effect/core/io/Effect";
2
2
  import * as AST from "@effect/language-service/ast";
3
3
  import { createDiagnostic } from "@effect/language-service/diagnostics/definition";
4
- import { findModuleImportIdentifierName, isCombinatorCall, isLiteralConstantValue } from "@effect/language-service/utils";
4
+ import { getEffectModuleIdentifier, isCombinatorCall, isLiteralConstantValue } from "@effect/language-service/utils";
5
5
  import * as Ch from "@tsplus/stdlib/collections/Chunk";
6
6
  import { pipe } from "@tsplus/stdlib/data/Function";
7
- import * as O from "@tsplus/stdlib/data/Maybe";
7
+ export const noSyncWithConstantMethodsMap = {
8
+ sync: "succeed",
9
+ failSync: "fail",
10
+ dieSync: "die"
11
+ };
12
+ export function isEffectSyncWithConstantCall(ts) {
13
+ return (moduleIdentifier, methodName) => node => {
14
+ if (isCombinatorCall(ts)(moduleIdentifier, methodName)(node) && node.arguments.length === 1) {
15
+ const arg = node.arguments[0];
16
+ if (ts.isArrowFunction(arg) && isLiteralConstantValue(ts)(arg.body)) {
17
+ return true;
18
+ }
19
+ }
20
+ return false;
21
+ };
22
+ }
8
23
  export default /*#__PURE__*/createDiagnostic({
9
24
  code: 1002,
10
25
  category: "warning",
11
26
  apply: sourceFile => T.gen(function* ($) {
12
27
  const ts = yield* $(T.service(AST.TypeScriptApi));
13
- const effectIdentifier = pipe(findModuleImportIdentifierName(ts)(sourceFile, "@effect/core/io/Effect"), O.getOrElse(() => "Effect"));
14
- const methodsMap = {
15
- sync: "succeed",
16
- failSync: "fail",
17
- dieSync: "die"
18
- };
28
+ const effectIdentifier = getEffectModuleIdentifier(ts)(sourceFile);
19
29
  let result = Ch.empty();
20
- for (const methodName of Object.keys(methodsMap)) {
21
- const suggestedMethodName = methodsMap[methodName];
22
- result = pipe(result, Ch.concat(pipe(AST.collectAll(ts)(sourceFile, isCombinatorCall(ts)(effectIdentifier, methodName)), Ch.filter(node => {
23
- if (node.arguments.length !== 1) return false;
24
- const arg = node.arguments[0];
25
- if (!ts.isArrowFunction(arg)) return false;
26
- if (!isLiteralConstantValue(ts)(arg.body)) return false;
27
- return true;
28
- }), Ch.map(node => ({
30
+ for (const methodName of Object.keys(noSyncWithConstantMethodsMap)) {
31
+ const suggestedMethodName = noSyncWithConstantMethodsMap[methodName];
32
+ result = pipe(result, Ch.concat(pipe(AST.collectAll(ts)(sourceFile, isEffectSyncWithConstantCall(ts)(effectIdentifier, methodName)), Ch.map(node => ({
29
33
  node,
30
34
  messageText: `Value is constant, instead of using ${methodName} you could use ${suggestedMethodName}.`
31
35
  })))));
@@ -1 +1 @@
1
- {"version":3,"file":"noSyncWithConstant.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,wBAAwB;AAC3C,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AAEnD,SAASC,gBAAgB,QAAQ,iDAAiD;AAClF,SACEC,8BAA8B,EAC9BC,gBAAgB,EAChBC,sBAAsB,QACjB,gCAAgC;AACvC,OAAO,KAAKC,EAAE,MAAM,kCAAkC;AACtD,SAASC,IAAI,QAAQ,8BAA8B;AACnD,OAAO,KAAKC,CAAC,MAAM,2BAA2B;AAE9C,4BAAeN,gBAAgB,CAAC;EAC9BO,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAE,SAAS;EACnBC,KAAK,EAAGC,UAAU,IAChBZ,CAAC,CAACa,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACd,CAAC,CAACgB,OAAO,CAACf,GAAG,CAACgB,aAAa,CAAC,CAAC;IAEjD,MAAMC,gBAAgB,GAAGX,IAAI,CAC3BJ,8BAA8B,CAACY,EAAE,CAAC,CAACH,UAAU,EAAE,wBAAwB,CAAC,EACxEJ,CAAC,CAACW,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,GAA0ClB,EAAE,CAACmB,KAAK,EAAE;IAE9D,KAAK,MAAMC,UAAU,IAAIC,MAAM,CAACC,IAAI,CAACR,UAAU,CAAC,EAAE;MAChD,MAAMS,mBAAmB,GAAWT,UAAU,CAACM,UAAU,CAAE;MAE3DF,MAAM,GAAGjB,IAAI,CACXiB,MAAM,EACNlB,EAAE,CAACwB,MAAM,CACPvB,IAAI,CACFN,GAAG,CAAC8B,UAAU,CAAChB,EAAE,CAAC,CAACH,UAAU,EAAER,gBAAgB,CAACW,EAAE,CAAC,CAACG,gBAAgB,EAAEQ,UAAU,CAAC,CAAC,EAClFpB,EAAE,CAAC0B,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,CAACnB,EAAE,CAACsB,eAAe,CAACD,GAAG,CAAC,EAAE,OAAO,KAAK;QAC1C,IAAI,CAAC/B,sBAAsB,CAACU,EAAE,CAAC,CAACqB,GAAG,CAACE,IAAI,CAAC,EAAE,OAAO,KAAK;QACvD,OAAO,IAAI;MACb,CAAC,CAAC,EACFhC,EAAE,CAACiC,GAAG,CAAEN,IAAI,KAAM;QAChBA,IAAI;QACJO,WAAW,EAAE,uCAAuCd,UAAU,kBAAkBG,mBAAmB;OACpG,CAAC,CAAC,CACJ,CACF,CACF;;IAGH,OAAOL,MAAM;EACf,CAAC;CACJ,CAAC","names":["T","AST","createDiagnostic","findModuleImportIdentifierName","isCombinatorCall","isLiteralConstantValue","Ch","pipe","O","code","category","apply","sourceFile","gen","$","ts","service","TypeScriptApi","effectIdentifier","getOrElse","methodsMap","sync","failSync","dieSync","result","empty","methodName","Object","keys","suggestedMethodName","concat","collectAll","filter","node","arguments","length","arg","isArrowFunction","body","map","messageText"],"sourceRoot":"","sources":["../../../src/diagnostics/noSyncWithConstant.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"noSyncWithConstant.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,wBAAwB;AAC3C,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AAEnD,SAASC,gBAAgB,QAAQ,iDAAiD;AAClF,SAASC,yBAAyB,EAAEC,gBAAgB,EAAEC,sBAAsB,QAAQ,gCAAgC;AACpH,OAAO,KAAKC,EAAE,MAAM,kCAAkC;AACtD,SAASC,IAAI,QAAQ,8BAA8B;AAEnD,OAAO,MAAMC,4BAA4B,GAAG;EAC1CC,IAAI,EAAE,SAAS;EACfC,QAAQ,EAAE,MAAM;EAChBC,OAAO,EAAE;CACV;AAED,OAAM,SAAUC,4BAA4B,CAACC,EAAqB;EAChE,OAAO,CAACC,gBAAwB,EAAEC,UAAkB,KACjDC,IAAa,IAA+B;IAC3C,IAAIZ,gBAAgB,CAACS,EAAE,CAAC,CAACC,gBAAgB,EAAEC,UAAU,CAAC,CAACC,IAAI,CAAC,IAAIA,IAAI,CAACC,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;MAC3F,MAAMC,GAAG,GAAGH,IAAI,CAACC,SAAS,CAAC,CAAC,CAAC;MAC7B,IAAIJ,EAAE,CAACO,eAAe,CAACD,GAAG,CAAC,IAAId,sBAAsB,CAACQ,EAAE,CAAC,CAACM,GAAG,CAACE,IAAI,CAAC,EAAE;QACnE,OAAO,IAAI;;;IAGf,OAAO,KAAK;EACd,CAAC;AACL;AAEA,4BAAenB,gBAAgB,CAAC;EAC9BoB,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAE,SAAS;EACnBC,KAAK,EAAGC,UAAU,IAChBzB,CAAC,CAAC0B,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMd,EAAE,GAAG,OAAOc,CAAC,CAAC3B,CAAC,CAAC4B,OAAO,CAAC3B,GAAG,CAAC4B,aAAa,CAAC,CAAC;IAEjD,MAAMC,gBAAgB,GAAG3B,yBAAyB,CAACU,EAAE,CAAC,CAACY,UAAU,CAAC;IAElE,IAAIM,MAAM,GAA0CzB,EAAE,CAAC0B,KAAK,EAAE;IAE9D,KAAK,MAAMjB,UAAU,IAAIkB,MAAM,CAACC,IAAI,CAAC1B,4BAA4B,CAAC,EAAE;MAClE,MAAM2B,mBAAmB,GAAW3B,4BAA4B,CAACO,UAAU,CAAE;MAC7EgB,MAAM,GAAGxB,IAAI,CACXwB,MAAM,EACNzB,EAAE,CAAC8B,MAAM,CACP7B,IAAI,CACFN,GAAG,CAACoC,UAAU,CAACxB,EAAE,CAAC,CAACY,UAAU,EAAEb,4BAA4B,CAACC,EAAE,CAAC,CAACiB,gBAAgB,EAAEf,UAAU,CAAC,CAAC,EAC9FT,EAAE,CAACgC,GAAG,CAAEtB,IAAI,KAAM;QAChBA,IAAI;QACJuB,WAAW,EAAE,uCAAuCxB,UAAU,kBAAkBoB,mBAAmB;OACpG,CAAC,CAAC,CACJ,CACF,CACF;;IAGH,OAAOJ,MAAM;EACf,CAAC;CACJ,CAAC","names":["T","AST","createDiagnostic","getEffectModuleIdentifier","isCombinatorCall","isLiteralConstantValue","Ch","pipe","noSyncWithConstantMethodsMap","sync","failSync","dieSync","isEffectSyncWithConstantCall","ts","moduleIdentifier","methodName","node","arguments","length","arg","isArrowFunction","body","code","category","apply","sourceFile","gen","$","service","TypeScriptApi","effectIdentifier","result","empty","Object","keys","suggestedMethodName","concat","collectAll","map","messageText"],"sourceRoot":"","sources":["../../../src/diagnostics/noSyncWithConstant.ts"],"sourcesContent":[null]}
@@ -1,7 +1,7 @@
1
1
  import * as T from "@effect/core/io/Effect";
2
2
  import * as AST from "@effect/language-service/ast";
3
3
  import { createRefactor } from "@effect/language-service/refactors/definition";
4
- import { findModuleImportIdentifierName, transformAsyncAwaitToEffectGen } from "@effect/language-service/utils";
4
+ import { getEffectModuleIdentifier, transformAsyncAwaitToEffectGen } from "@effect/language-service/utils";
5
5
  import * as Ch from "@tsplus/stdlib/collections/Chunk";
6
6
  import { pipe } from "@tsplus/stdlib/data/Function";
7
7
  import * as O from "@tsplus/stdlib/data/Maybe";
@@ -14,8 +14,7 @@ export default /*#__PURE__*/createRefactor({
14
14
  description: "Rewrite to Effect.gen",
15
15
  apply: T.gen(function* ($) {
16
16
  const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
17
- const importedEffectName = findModuleImportIdentifierName(ts)(sourceFile, "@effect/core/io/Effect");
18
- const effectName = pipe(importedEffectName, O.getOrElse(() => "Effect"));
17
+ const effectName = getEffectModuleIdentifier(ts)(sourceFile);
19
18
  const newDeclaration = transformAsyncAwaitToEffectGen(ts)(node, effectName, expression => ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectName), "promise"), undefined, [expression]));
20
19
  changeTracker.replaceNode(sourceFile, node, newDeclaration);
21
20
  })
@@ -1 +1 @@
1
- {"version":3,"file":"asyncAwaitToGen.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,wBAAwB;AAC3C,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,SAASC,8BAA8B,EAAEC,8BAA8B,QAAQ,gCAAgC;AAC/G,OAAO,KAAKC,EAAE,MAAM,kCAAkC;AACtD,SAASC,IAAI,QAAQ,8BAA8B;AACnD,OAAO,KAAKC,CAAC,MAAM,2BAA2B;AAE9C,4BAAeL,cAAc,CAAC;EAC5BM,IAAI,EAAE,wBAAwB;EAC9BC,WAAW,EAAE,uBAAuB;EACpCC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BZ,CAAC,CAACa,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACd,CAAC,CAACgB,OAAO,CAACf,GAAG,CAACgB,aAAa,CAAC,CAAC;IAEjD,OAAOX,IAAI,CACTL,GAAG,CAACiB,uBAAuB,CAACH,EAAE,CAAC,CAACJ,UAAU,EAAEC,SAAS,CAAC,EACtDP,EAAE,CAACc,MAAM,CAACJ,EAAE,CAACK,qBAAqB,CAAC,EACnCf,EAAE,CAACc,MAAM,CAAEE,IAAI,IAAK,CAAC,CAACA,IAAI,CAACC,IAAI,CAAC,EAChCjB,EAAE,CAACc,MAAM,CAAEE,IAAI,IAAK,CAAC,EAAEN,EAAE,CAACQ,wBAAwB,CAACF,IAAI,CAAC,GAAGN,EAAE,CAACS,aAAa,CAACC,KAAK,CAAC,CAAC,EACnFpB,EAAE,CAACqB,IAAI,EACPnB,CAAC,CAACoB,GAAG,CAAEN,IAAI,KAAM;MACfZ,WAAW,EAAE,uBAAuB;MACpCC,KAAK,EAAEV,CAAC,CAACa,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMc,aAAa,GAAG,OAAOd,CAAC,CAACd,CAAC,CAACgB,OAAO,CAACf,GAAG,CAAC4B,gBAAgB,CAAC,CAAC;QAC/D,MAAMC,kBAAkB,GAAI3B,8BAA8B,CAACY,EAAE,CAAC,CAACJ,UAAU,EAAE,wBAAwB,CAAE;QACrG,MAAMoB,UAAU,GAAGzB,IAAI,CAACwB,kBAAkB,EAAEvB,CAAC,CAACyB,SAAS,CAAC,MAAM,QAAQ,CAAC,CAAC;QAExE,MAAMC,cAAc,GAAG7B,8BAA8B,CAACW,EAAE,CAAC,CAACM,IAAI,EAAEU,UAAU,EAAGG,UAAU,IACrFnB,EAAE,CAACoB,OAAO,CAACC,oBAAoB,CAC7BrB,EAAE,CAACoB,OAAO,CAACE,8BAA8B,CACvCtB,EAAE,CAACoB,OAAO,CAACG,gBAAgB,CAACP,UAAU,CAAC,EACvC,SAAS,CACV,EACDQ,SAAS,EACT,CAACL,UAAU,CAAC,CACb,CAAC;QAEJN,aAAa,CAACY,WAAW,CAAC7B,UAAU,EAAEU,IAAI,EAAEY,cAAc,CAAC;MAC7D,CAAC;KACF,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC","names":["T","AST","createRefactor","findModuleImportIdentifierName","transformAsyncAwaitToEffectGen","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","getNodesContainingRange","filter","isFunctionDeclaration","node","body","getCombinedModifierFlags","ModifierFlags","Async","head","map","changeTracker","ChangeTrackerApi","importedEffectName","effectName","getOrElse","newDeclaration","expression","factory","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGen.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"asyncAwaitToGen.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,wBAAwB;AAC3C,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,SAASC,yBAAyB,EAAEC,8BAA8B,QAAQ,gCAAgC;AAC1G,OAAO,KAAKC,EAAE,MAAM,kCAAkC;AACtD,SAASC,IAAI,QAAQ,8BAA8B;AACnD,OAAO,KAAKC,CAAC,MAAM,2BAA2B;AAE9C,4BAAeL,cAAc,CAAC;EAC5BM,IAAI,EAAE,wBAAwB;EAC9BC,WAAW,EAAE,uBAAuB;EACpCC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BZ,CAAC,CAACa,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACd,CAAC,CAACgB,OAAO,CAACf,GAAG,CAACgB,aAAa,CAAC,CAAC;IAEjD,OAAOX,IAAI,CACTL,GAAG,CAACiB,uBAAuB,CAACH,EAAE,CAAC,CAACJ,UAAU,EAAEC,SAAS,CAAC,EACtDP,EAAE,CAACc,MAAM,CAACJ,EAAE,CAACK,qBAAqB,CAAC,EACnCf,EAAE,CAACc,MAAM,CAAEE,IAAI,IAAK,CAAC,CAACA,IAAI,CAACC,IAAI,CAAC,EAChCjB,EAAE,CAACc,MAAM,CAAEE,IAAI,IAAK,CAAC,EAAEN,EAAE,CAACQ,wBAAwB,CAACF,IAAI,CAAC,GAAGN,EAAE,CAACS,aAAa,CAACC,KAAK,CAAC,CAAC,EACnFpB,EAAE,CAACqB,IAAI,EACPnB,CAAC,CAACoB,GAAG,CAAEN,IAAI,KAAM;MACfZ,WAAW,EAAE,uBAAuB;MACpCC,KAAK,EAAEV,CAAC,CAACa,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMc,aAAa,GAAG,OAAOd,CAAC,CAACd,CAAC,CAACgB,OAAO,CAACf,GAAG,CAAC4B,gBAAgB,CAAC,CAAC;QAC/D,MAAMC,UAAU,GAAG3B,yBAAyB,CAACY,EAAE,CAAC,CAACJ,UAAU,CAAC;QAE5D,MAAMoB,cAAc,GAAG3B,8BAA8B,CAACW,EAAE,CAAC,CAACM,IAAI,EAAES,UAAU,EAAGE,UAAU,IACrFjB,EAAE,CAACkB,OAAO,CAACC,oBAAoB,CAC7BnB,EAAE,CAACkB,OAAO,CAACE,8BAA8B,CACvCpB,EAAE,CAACkB,OAAO,CAACG,gBAAgB,CAACN,UAAU,CAAC,EACvC,SAAS,CACV,EACDO,SAAS,EACT,CAACL,UAAU,CAAC,CACb,CAAC;QAEJJ,aAAa,CAACU,WAAW,CAAC3B,UAAU,EAAEU,IAAI,EAAEU,cAAc,CAAC;MAC7D,CAAC;KACF,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC","names":["T","AST","createRefactor","getEffectModuleIdentifier","transformAsyncAwaitToEffectGen","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","getNodesContainingRange","filter","isFunctionDeclaration","node","body","getCombinedModifierFlags","ModifierFlags","Async","head","map","changeTracker","ChangeTrackerApi","effectName","newDeclaration","expression","factory","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGen.ts"],"sourcesContent":[null]}
@@ -1,7 +1,7 @@
1
1
  import * as T from "@effect/core/io/Effect";
2
2
  import * as AST from "@effect/language-service/ast";
3
3
  import { createRefactor } from "@effect/language-service/refactors/definition";
4
- import { findModuleImportIdentifierName, transformAsyncAwaitToEffectGen } from "@effect/language-service/utils";
4
+ import { getEffectModuleIdentifier, transformAsyncAwaitToEffectGen } from "@effect/language-service/utils";
5
5
  import * as Ch from "@tsplus/stdlib/collections/Chunk";
6
6
  import { pipe } from "@tsplus/stdlib/data/Function";
7
7
  import * as O from "@tsplus/stdlib/data/Maybe";
@@ -14,8 +14,7 @@ export default /*#__PURE__*/createRefactor({
14
14
  description: "Rewrite to Effect.gen with failures",
15
15
  apply: T.gen(function* ($) {
16
16
  const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
17
- const importedEffectName = findModuleImportIdentifierName(ts)(sourceFile, "@effect/core/io/Effect");
18
- const effectName = pipe(importedEffectName, O.getOrElse(() => "Effect"));
17
+ const effectName = getEffectModuleIdentifier(ts)(sourceFile);
19
18
  let errorCount = 0;
20
19
  function createErrorADT() {
21
20
  errorCount++;
@@ -1 +1 @@
1
- {"version":3,"file":"asyncAwaitToGenTryPromise.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,wBAAwB;AAC3C,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,SAASC,8BAA8B,EAAEC,8BAA8B,QAAQ,gCAAgC;AAC/G,OAAO,KAAKC,EAAE,MAAM,kCAAkC;AACtD,SAASC,IAAI,QAAQ,8BAA8B;AACnD,OAAO,KAAKC,CAAC,MAAM,2BAA2B;AAE9C,4BAAeL,cAAc,CAAC;EAC5BM,IAAI,EAAE,kCAAkC;EACxCC,WAAW,EAAE,qCAAqC;EAClDC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3BZ,CAAC,CAACa,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAACd,CAAC,CAACgB,OAAO,CAACf,GAAG,CAACgB,aAAa,CAAC,CAAC;IAEjD,OAAOX,IAAI,CACTL,GAAG,CAACiB,uBAAuB,CAACH,EAAE,CAAC,CAACJ,UAAU,EAAEC,SAAS,CAAC,EACtDP,EAAE,CAACc,MAAM,CAACJ,EAAE,CAACK,qBAAqB,CAAC,EACnCf,EAAE,CAACc,MAAM,CAAEE,IAAI,IAAK,CAAC,CAACA,IAAI,CAACC,IAAI,CAAC,EAChCjB,EAAE,CAACc,MAAM,CAAEE,IAAI,IAAK,CAAC,EAAEN,EAAE,CAACQ,wBAAwB,CAACF,IAAI,CAAC,GAAGN,EAAE,CAACS,aAAa,CAACC,KAAK,CAAC,CAAC,EACnFpB,EAAE,CAACqB,IAAI,EACPnB,CAAC,CAACoB,GAAG,CAAEN,IAAI,KAAM;MACfZ,WAAW,EAAE,qCAAqC;MAClDC,KAAK,EAAEV,CAAC,CAACa,GAAG,CAAC,WAAUC,CAAC;QACtB,MAAMc,aAAa,GAAG,OAAOd,CAAC,CAACd,CAAC,CAACgB,OAAO,CAACf,GAAG,CAAC4B,gBAAgB,CAAC,CAAC;QAC/D,MAAMC,kBAAkB,GAAI3B,8BAA8B,CAACY,EAAE,CAAC,CAACJ,UAAU,EAAE,wBAAwB,CAAE;QACrG,MAAMoB,UAAU,GAAGzB,IAAI,CAACwB,kBAAkB,EAAEvB,CAAC,CAACyB,SAAS,CAAC,MAAM,QAAQ,CAAC,CAAC;QAExE,IAAIC,UAAU,GAAG,CAAC;QAElB,SAASC,cAAc;UACrBD,UAAU,EAAE;UACZ,OAAOlB,EAAE,CAACoB,OAAO,CAACC,6BAA6B,CAAC,CAC9CrB,EAAE,CAACoB,OAAO,CAACE,wBAAwB,CACjC,MAAM,EACNtB,EAAE,CAACoB,OAAO,CAACG,kBAAkB,CAC3BvB,EAAE,CAACoB,OAAO,CAACI,mBAAmB,CAAC,OAAO,GAAGN,UAAU,CAAC,EACpDlB,EAAE,CAACoB,OAAO,CAACK,uBAAuB,CAAC,OAAO,CAAC,CAC5C,CACF,EACDzB,EAAE,CAACoB,OAAO,CAACM,iCAAiC,CAAC,OAAO,CAAC,CACtD,CAAC;QACJ;QAEA,MAAMC,cAAc,GAAItC,8BAA8B,CAACW,EAAE,CAAC,CAACM,IAAI,EAAEU,UAAU,EAAGY,UAAU,IACtF5B,EAAE,CAACoB,OAAO,CAACS,oBAAoB,CAC7B7B,EAAE,CAACoB,OAAO,CAACU,8BAA8B,CACvC9B,EAAE,CAACoB,OAAO,CAACW,gBAAgB,CAACf,UAAU,CAAC,EACvC,iBAAiB,CAClB,EACDgB,SAAS,EACT,CACEhC,EAAE,CAACoB,OAAO,CAACa,mBAAmB,CAACD,SAAS,EAAEA,SAAS,EAAE,EAAE,EAAEA,SAAS,EAAEA,SAAS,EAAEJ,UAAU,CAAC,EAC1F5B,EAAE,CAACoB,OAAO,CAACa,mBAAmB,CAC5BD,SAAS,EACTA,SAAS,EACT,CAAChC,EAAE,CAACoB,OAAO,CAACc,0BAA0B,CAACF,SAAS,EAAEA,SAAS,EAAE,OAAO,CAAC,CAAC,EACtEA,SAAS,EACTA,SAAS,EACTb,cAAc,EAAE,CACjB,CACF,CACF,CAAE;QAELN,aAAa,CAACsB,WAAW,CAACvC,UAAU,EAAEU,IAAI,EAAEqB,cAAc,CAAC;MAC7D,CAAC;KACF,CAAC,CAAC,CACJ;EACH,CAAC;CACJ,CAAC","names":["T","AST","createRefactor","findModuleImportIdentifierName","transformAsyncAwaitToEffectGen","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","getNodesContainingRange","filter","isFunctionDeclaration","node","body","getCombinedModifierFlags","ModifierFlags","Async","head","map","changeTracker","ChangeTrackerApi","importedEffectName","effectName","getOrElse","errorCount","createErrorADT","factory","createObjectLiteralExpression","createPropertyAssignment","createAsExpression","createStringLiteral","createTypeReferenceNode","createShorthandPropertyAssignment","newDeclaration","expression","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","createArrowFunction","createParameterDeclaration","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGenTryPromise.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"asyncAwaitToGenTryPromise.mjs","mappings":"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","names":["T","AST","createRefactor","getEffectModuleIdentifier","transformAsyncAwaitToEffectGen","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","getNodesContainingRange","filter","isFunctionDeclaration","node","body","getCombinedModifierFlags","ModifierFlags","Async","head","map","changeTracker","ChangeTrackerApi","effectName","errorCount","createErrorADT","factory","createObjectLiteralExpression","createPropertyAssignment","createAsExpression","createStringLiteral","createTypeReferenceNode","createShorthandPropertyAssignment","newDeclaration","expression","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","createArrowFunction","createParameterDeclaration","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGenTryPromise.ts"],"sourcesContent":[null]}
@@ -2,6 +2,7 @@ import addPipe from "@effect/language-service/refactors/addPipe";
2
2
  import asyncAwaitToGen from "@effect/language-service/refactors/asyncAwaitToGen";
3
3
  import asyncAwaitToGenTryPromise from "@effect/language-service/refactors/asyncAwaitToGenTryPromise";
4
4
  import functionToArrow from "@effect/language-service/refactors/functionToArrow";
5
+ import noSyncWithConstant from "@effect/language-service/refactors/noSyncWithConstant";
5
6
  import removeCurryArrow from "@effect/language-service/refactors/removeCurryArrow";
6
7
  import removePipe from "@effect/language-service/refactors/removePipe";
7
8
  import toggleReturnTypeAnnotation from "@effect/language-service/refactors/toggleReturnTypeAnnotation";
@@ -16,6 +17,7 @@ export default {
16
17
  functionToArrow,
17
18
  toggleTypeAnnotation,
18
19
  toggleReturnTypeAnnotation,
19
- wrapWithPipe
20
+ wrapWithPipe,
21
+ noSyncWithConstant
20
22
  };
21
23
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","mappings":"AAAA,OAAOA,OAAO,MAAM,4CAA4C;AAChE,OAAOC,eAAe,MAAM,oDAAoD;AAChF,OAAOC,yBAAyB,MAAM,8DAA8D;AACpG,OAAOC,eAAe,MAAM,oDAAoD;AAChF,OAAOC,gBAAgB,MAAM,qDAAqD;AAClF,OAAOC,UAAU,MAAM,+CAA+C;AACtE,OAAOC,0BAA0B,MAAM,+DAA+D;AACtG,OAAOC,oBAAoB,MAAM,yDAAyD;AAC1F,OAAOC,YAAY,MAAM,iDAAiD;AAE1E,eAAe;EACbP,eAAe;EACfC,yBAAyB;EACzBG,UAAU;EACVL,OAAO;EACPI,gBAAgB;EAChBD,eAAe;EACfI,oBAAoB;EACpBD,0BAA0B;EAC1BE;CACD","names":["addPipe","asyncAwaitToGen","asyncAwaitToGenTryPromise","functionToArrow","removeCurryArrow","removePipe","toggleReturnTypeAnnotation","toggleTypeAnnotation","wrapWithPipe"],"sourceRoot":"","sources":["../../../src/refactors/index.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"index.mjs","mappings":"AAAA,OAAOA,OAAO,MAAM,4CAA4C;AAChE,OAAOC,eAAe,MAAM,oDAAoD;AAChF,OAAOC,yBAAyB,MAAM,8DAA8D;AACpG,OAAOC,eAAe,MAAM,oDAAoD;AAChF,OAAOC,kBAAkB,MAAM,uDAAuD;AACtF,OAAOC,gBAAgB,MAAM,qDAAqD;AAClF,OAAOC,UAAU,MAAM,+CAA+C;AACtE,OAAOC,0BAA0B,MAAM,+DAA+D;AACtG,OAAOC,oBAAoB,MAAM,yDAAyD;AAC1F,OAAOC,YAAY,MAAM,iDAAiD;AAE1E,eAAe;EACbR,eAAe;EACfC,yBAAyB;EACzBI,UAAU;EACVN,OAAO;EACPK,gBAAgB;EAChBF,eAAe;EACfK,oBAAoB;EACpBD,0BAA0B;EAC1BE,YAAY;EACZL;CACD","names":["addPipe","asyncAwaitToGen","asyncAwaitToGenTryPromise","functionToArrow","noSyncWithConstant","removeCurryArrow","removePipe","toggleReturnTypeAnnotation","toggleTypeAnnotation","wrapWithPipe"],"sourceRoot":"","sources":["../../../src/refactors/index.ts"],"sourcesContent":[null]}
@@ -0,0 +1,34 @@
1
+ import * as T from "@effect/core/io/Effect";
2
+ import * as AST from "@effect/language-service/ast";
3
+ import { isEffectSyncWithConstantCall, noSyncWithConstantMethodsMap } from "@effect/language-service/diagnostics/noSyncWithConstant";
4
+ import { createRefactor } from "@effect/language-service/refactors/definition";
5
+ import { getEffectModuleIdentifier, isLiteralConstantValue } from "@effect/language-service/utils";
6
+ import * as Ch from "@tsplus/stdlib/collections/Chunk";
7
+ import { pipe } from "@tsplus/stdlib/data/Function";
8
+ import * as O from "@tsplus/stdlib/data/Maybe";
9
+ export default /*#__PURE__*/createRefactor({
10
+ name: "effect/addPipe",
11
+ description: "Rewrite using pipe",
12
+ apply: (sourceFile, textRange) => T.gen(function* ($) {
13
+ const ts = yield* $(T.service(AST.TypeScriptApi));
14
+ const effectIdentifier = getEffectModuleIdentifier(ts)(sourceFile);
15
+ const nodes = pipe(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.reverse, Ch.from, Ch.filter(AST.isNodeInRange(textRange)));
16
+ for (const methodName of Object.keys(noSyncWithConstantMethodsMap)) {
17
+ const suggestedMethodName = noSyncWithConstantMethodsMap[methodName];
18
+ const refactor = pipe(nodes, Ch.filter(isEffectSyncWithConstantCall(ts)(effectIdentifier, methodName)), Ch.head, O.map(node => ({
19
+ description: `Rewrite ${methodName} to ${suggestedMethodName}`,
20
+ apply: T.gen(function* ($) {
21
+ const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
22
+ const arg = node.arguments[0];
23
+ if (ts.isArrowFunction(arg) && isLiteralConstantValue(ts)(arg.body)) {
24
+ const newNode = ts.factory.updateCallExpression(node, ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectIdentifier), suggestedMethodName), node.typeArguments, ts.factory.createNodeArray([arg.body]));
25
+ changeTracker.replaceNode(sourceFile, node, newNode);
26
+ }
27
+ })
28
+ })));
29
+ if (O.isSome(refactor)) return refactor;
30
+ }
31
+ return O.none;
32
+ })
33
+ });
34
+ //# sourceMappingURL=noSyncWithConstant.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noSyncWithConstant.mjs","mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,wBAAwB;AAC3C,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,SACEC,4BAA4B,EAC5BC,4BAA4B,QACvB,yDAAyD;AAChE,SAASC,cAAc,QAAQ,+CAA+C;AAC9E,SAASC,yBAAyB,EAAEC,sBAAsB,QAAQ,gCAAgC;AAClG,OAAO,KAAKC,EAAE,MAAM,kCAAkC;AACtD,SAASC,IAAI,QAAQ,8BAA8B;AACnD,OAAO,KAAKC,CAAC,MAAM,2BAA2B;AAE9C,4BAAeL,cAAc,CAAC;EAC5BM,IAAI,EAAE,gBAAgB;EACtBC,WAAW,EAAE,oBAAoB;EACjCC,KAAK,EAAE,CAACC,UAAU,EAAEC,SAAS,KAC3Bd,CAAC,CAACe,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMC,EAAE,GAAG,OAAOD,CAAC,CAAChB,CAAC,CAACkB,OAAO,CAACjB,GAAG,CAACkB,aAAa,CAAC,CAAC;IACjD,MAAMC,gBAAgB,GAAGf,yBAAyB,CAACY,EAAE,CAAC,CAACJ,UAAU,CAAC;IAElE,MAAMQ,KAAK,GAAGb,IAAI,CAChBP,GAAG,CAACqB,uBAAuB,CAACL,EAAE,CAAC,CAACJ,UAAU,EAAEC,SAAS,CAAC,EACtDP,EAAE,CAACgB,OAAO,EACVhB,EAAE,CAACiB,IAAI,EACPjB,EAAE,CAACkB,MAAM,CAACxB,GAAG,CAACyB,aAAa,CAACZ,SAAS,CAAC,CAAC,CACxC;IAED,KAAK,MAAMa,UAAU,IAAIC,MAAM,CAACC,IAAI,CAAC1B,4BAA4B,CAAC,EAAE;MAClE,MAAM2B,mBAAmB,GAAW3B,4BAA4B,CAACwB,UAAU,CAAE;MAC7E,MAAMI,QAAQ,GAAGvB,IAAI,CACnBa,KAAK,EACLd,EAAE,CAACkB,MAAM,CAACvB,4BAA4B,CAACe,EAAE,CAAC,CAACG,gBAAgB,EAAEO,UAAU,CAAC,CAAC,EACzEpB,EAAE,CAACyB,IAAI,EACPvB,CAAC,CAACwB,GAAG,CAAEC,IAAI,KAAM;QACfvB,WAAW,EAAE,WAAWgB,UAAU,OAAOG,mBAAmB,EAAE;QAC9DlB,KAAK,EAAEZ,CAAC,CAACe,GAAG,CAAC,WAAUC,CAAC;UACtB,MAAMmB,aAAa,GAAG,OAAOnB,CAAC,CAAChB,CAAC,CAACkB,OAAO,CAACjB,GAAG,CAACmC,gBAAgB,CAAC,CAAC;UAC/D,MAAMC,GAAG,GAAGH,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC;UAC7B,IAAIrB,EAAE,CAACsB,eAAe,CAACF,GAAG,CAAC,IAAI/B,sBAAsB,CAACW,EAAE,CAAC,CAACoB,GAAG,CAACG,IAAI,CAAC,EAAE;YACnE,MAAMC,OAAO,GAAGxB,EAAE,CAACyB,OAAO,CAACC,oBAAoB,CAC7CT,IAAI,EACJjB,EAAE,CAACyB,OAAO,CAACE,8BAA8B,CACvC3B,EAAE,CAACyB,OAAO,CAACG,gBAAgB,CAACzB,gBAAgB,CAAC,EAC7CU,mBAAmB,CACpB,EACDI,IAAI,CAACY,aAAa,EAClB7B,EAAE,CAACyB,OAAO,CAACK,eAAe,CAAC,CAACV,GAAG,CAACG,IAAI,CAAC,CAAC,CACvC;YAEDL,aAAa,CAACa,WAAW,CAACnC,UAAU,EAAEqB,IAAI,EAAEO,OAAO,CAAC;;QAExD,CAAC;OACF,CAAC,CAAC,CACJ;MACD,IAAIhC,CAAC,CAACwC,MAAM,CAAClB,QAAQ,CAAC,EAAE,OAAOA,QAAQ;;IAGzC,OAAOtB,CAAC,CAACyC,IAAI;EACf,CAAC;CACJ,CAAC","names":["T","AST","isEffectSyncWithConstantCall","noSyncWithConstantMethodsMap","createRefactor","getEffectModuleIdentifier","isLiteralConstantValue","Ch","pipe","O","name","description","apply","sourceFile","textRange","gen","$","ts","service","TypeScriptApi","effectIdentifier","nodes","getNodesContainingRange","reverse","from","filter","isNodeInRange","methodName","Object","keys","suggestedMethodName","refactor","head","map","node","changeTracker","ChangeTrackerApi","arg","arguments","isArrowFunction","body","newNode","factory","updateCallExpression","createPropertyAccessExpression","createIdentifier","typeArguments","createNodeArray","replaceNode","isSome","none"],"sourceRoot":"","sources":["../../../src/refactors/noSyncWithConstant.ts"],"sourcesContent":[null]}
@@ -0,0 +1,148 @@
1
+ import { createFilter } from "@rollup/pluginutils";
2
+ import ts from "typescript";
3
+ class RefCounted {
4
+ constructor(ref) {
5
+ this.ref = ref;
6
+ this.counter = 0;
7
+ }
8
+ get get() {
9
+ this.counter++;
10
+ return this.ref;
11
+ }
12
+ get count() {
13
+ return this.counter;
14
+ }
15
+ }
16
+ export default function transformer(program, options) {
17
+ const checker = program.getTypeChecker();
18
+ const traceFilter = createFilter(options?.trace?.include, options?.trace?.exclude);
19
+ const optimizeFilter = createFilter(options?.optimize?.include, options?.optimize?.exclude);
20
+ const removeUnusedImports = options?.removeUnusedImports ?? true;
21
+ return {
22
+ before(ctx) {
23
+ return sourceFile => {
24
+ if (sourceFile.isDeclarationFile) {
25
+ return sourceFile;
26
+ }
27
+ const tracer = new RefCounted(ctx.factory.createUniqueName("tracer"));
28
+ const fileName = new RefCounted(ctx.factory.createUniqueName("fileName"));
29
+ function getOriginal(node) {
30
+ let current = node;
31
+ while ("original" in current) {
32
+ current = current["original"];
33
+ }
34
+ return current;
35
+ }
36
+ function getTrace(node) {
37
+ try {
38
+ const pos = getOriginal(node).getStart();
39
+ const nodeEnd = sourceFile.getLineAndCharacterOfPosition(pos);
40
+ return ctx.factory.createBinaryExpression(fileName.get, ctx.factory.createToken(ts.SyntaxKind.PlusToken), ctx.factory.createStringLiteral(`:${nodeEnd.line + 1}:${nodeEnd.character + 1}`));
41
+ } catch (e) {
42
+ return undefined;
43
+ }
44
+ }
45
+ const traceVisitor = node => {
46
+ const visited = ts.visitEachChild(node, traceVisitor, ctx);
47
+ if (ts.isCallExpression(visited)) {
48
+ let shouldEmbedTrace = false;
49
+ const signature = checker.getResolvedSignature(visited);
50
+ const declaration = signature?.declaration;
51
+ if (declaration) {
52
+ shouldEmbedTrace = ts.getAllJSDocTags(declaration, tag => tag.tagName.text === "macro" && tag.comment === "traced").length > 0;
53
+ }
54
+ if (!shouldEmbedTrace) {
55
+ shouldEmbedTrace = (checker.getSymbolAtLocation(visited.expression)?.getJsDocTags(checker).filter(tag => tag.name === "macro" && tag.text && tag.text.map(d => d.text).join("\n") === "traced") || []).length > 0;
56
+ }
57
+ if (shouldEmbedTrace) {
58
+ const trace = getTrace(ts.isPropertyAccessExpression(visited.expression) ? visited.expression.name : visited.expression);
59
+ if (typeof trace !== "undefined") {
60
+ return ctx.factory.createCallExpression(ctx.factory.createCallExpression(ctx.factory.createPropertyAccessExpression(tracer.get, "withCallTrace"), [], [trace]), [], [visited]);
61
+ }
62
+ }
63
+ }
64
+ return visited;
65
+ };
66
+ const findSource = node => {
67
+ while (!ts.isSourceFile(node)) {
68
+ node = node.parent;
69
+ }
70
+ return node;
71
+ };
72
+ const optimizeVisitor = node => {
73
+ const visited = ts.visitEachChild(node, optimizeVisitor, ctx);
74
+ if (ts.isCallExpression(visited) && visited.arguments.length > 0) {
75
+ const signature = checker.getResolvedSignature(visited);
76
+ const declaration = signature?.declaration;
77
+ if (declaration && !ts.isJSDocSignature(declaration) && findSource(declaration).fileName.includes("@fp-ts/data/Function")) {
78
+ if (declaration.name?.getText() === "pipe") {
79
+ let expr = ts.visitNode(visited.arguments[0], optimizeVisitor);
80
+ for (let i = 1; i < visited.arguments.length; i++) {
81
+ expr = ctx.factory.createCallExpression(ts.visitNode(visited.arguments[i], optimizeVisitor), [], [expr]);
82
+ }
83
+ return expr;
84
+ }
85
+ }
86
+ }
87
+ return visited;
88
+ };
89
+ const usedImportsVisitor = node => {
90
+ if (ts.isImportDeclaration(node) && node.importClause) {
91
+ if (node.importClause.namedBindings && ts.isNamedImports(node.importClause.namedBindings)) {
92
+ node.importClause.namedBindings.elements.forEach(specifier => {
93
+ specifier.used = 1;
94
+ });
95
+ } else if (node.importClause.namedBindings && ts.isNamespaceImport(node.importClause.namedBindings)) {
96
+ node.importClause.namedBindings.used = 1;
97
+ }
98
+ } else if (ts.isIdentifier(node) && node.parent && !ts.isImportSpecifier(node.parent) && !ts.isNamespaceImport(node.parent)) {
99
+ checker.getSymbolAtLocation(node)?.declarations?.forEach(d => {
100
+ if (ts.isImportSpecifier(d) || ts.isNamespaceImport(d)) {
101
+ d.used = (d.used ?? 1) + 1;
102
+ }
103
+ });
104
+ }
105
+ return ts.visitEachChild(node, usedImportsVisitor, ctx);
106
+ };
107
+ let visited = sourceFile;
108
+ if (optimizeFilter(sourceFile.fileName)) {
109
+ visited = ts.visitNode(visited, optimizeVisitor);
110
+ }
111
+ if (traceFilter(sourceFile.fileName)) {
112
+ visited = ts.visitNode(visited, traceVisitor);
113
+ }
114
+ if (removeUnusedImports) {
115
+ visited = ts.visitNode(visited, usedImportsVisitor);
116
+ }
117
+ const statements = [];
118
+ if (tracer.count > 0) {
119
+ statements.push(ctx.factory.createImportDeclaration(undefined, ctx.factory.createImportClause(false, undefined, ctx.factory.createNamespaceImport(tracer.get)), ctx.factory.createStringLiteral("@effect/io/Debug")));
120
+ }
121
+ if (fileName.count > 0) {
122
+ statements.push(ctx.factory.createVariableStatement(undefined, ctx.factory.createVariableDeclarationList([ctx.factory.createVariableDeclaration(fileName.get, undefined, undefined, ctx.factory.createStringLiteral(sourceFile.fileName))], ts.NodeFlags.Const)));
123
+ }
124
+ for (const statement of visited.statements) {
125
+ statements.push(statement);
126
+ }
127
+ return ctx.factory.updateSourceFile(visited, statements.filter(statement => {
128
+ if (!removeUnusedImports) {
129
+ return true;
130
+ }
131
+ if (ts.isImportDeclaration(statement) && statement.importClause) {
132
+ if (statement.importClause.namedBindings && ts.isNamedImports(statement.importClause.namedBindings)) {
133
+ if (statement.importClause.namedBindings.elements.every(specifier => specifier.used === 0)) {
134
+ return false;
135
+ }
136
+ } else if (statement.importClause.namedBindings && ts.isNamespaceImport(statement.importClause.namedBindings)) {
137
+ if (statement.importClause.namedBindings.used === 0) {
138
+ return false;
139
+ }
140
+ }
141
+ }
142
+ return true;
143
+ }), visited.isDeclarationFile, visited.referencedFiles, visited.typeReferenceDirectives, visited.hasNoDefaultLib, visited.libReferenceDirectives);
144
+ };
145
+ }
146
+ };
147
+ }
148
+ //# sourceMappingURL=transformer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.mjs","mappings":"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","names":["createFilter","ts","RefCounted","constructor","ref","get","counter","count","transformer","program","options","checker","getTypeChecker","traceFilter","trace","include","exclude","optimizeFilter","optimize","removeUnusedImports","before","ctx","sourceFile","isDeclarationFile","tracer","factory","createUniqueName","fileName","getOriginal","node","current","getTrace","pos","getStart","nodeEnd","getLineAndCharacterOfPosition","createBinaryExpression","createToken","SyntaxKind","PlusToken","createStringLiteral","line","character","e","undefined","traceVisitor","visited","visitEachChild","isCallExpression","shouldEmbedTrace","signature","getResolvedSignature","declaration","getAllJSDocTags","tag","tagName","text","comment","length","getSymbolAtLocation","expression","getJsDocTags","filter","name","map","d","join","isPropertyAccessExpression","createCallExpression","createPropertyAccessExpression","findSource","isSourceFile","parent","optimizeVisitor","arguments","isJSDocSignature","includes","getText","expr","visitNode","i","usedImportsVisitor","isImportDeclaration","importClause","namedBindings","isNamedImports","elements","forEach","specifier","used","isNamespaceImport","isIdentifier","isImportSpecifier","declarations","statements","push","createImportDeclaration","createImportClause","createNamespaceImport","createVariableStatement","createVariableDeclarationList","createVariableDeclaration","NodeFlags","Const","statement","updateSourceFile","every","referencedFiles","typeReferenceDirectives","hasNoDefaultLib","libReferenceDirectives"],"sourceRoot":"","sources":["../../src/transformer.ts"],"sourcesContent":[null]}
package/_mjs/utils.mjs CHANGED
@@ -94,7 +94,7 @@ export function isCurryArrow(ts) {
94
94
  }
95
95
  export function isLiteralConstantValue(ts) {
96
96
  return node => {
97
- return ts.isIdentifier(node) || ts.isStringLiteral(node) || ts.isNumericLiteral(node) || node.kind === ts.SyntaxKind.TrueKeyword || node.kind === ts.SyntaxKind.FalseKeyword || node.kind === ts.SyntaxKind.NullKeyword;
97
+ return ts.isStringLiteral(node) || ts.isNumericLiteral(node) || node.kind === ts.SyntaxKind.TrueKeyword || node.kind === ts.SyntaxKind.FalseKeyword || node.kind === ts.SyntaxKind.NullKeyword;
98
98
  };
99
99
  }
100
100
  export function transformAsyncAwaitToEffectGen(ts) {
@@ -153,4 +153,7 @@ export function removeReturnTypeAnnotation(ts, changes) {
153
153
  }
154
154
  };
155
155
  }
156
+ export function getEffectModuleIdentifier(ts) {
157
+ return sourceFile => pipe(findModuleImportIdentifierName(ts)(sourceFile, "@effect/core/io/Effect"), O.orElse(() => findModuleImportIdentifierName(ts)(sourceFile, "@effect/io/Effect")), O.getOrElse(() => "Effect"));
158
+ }
156
159
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","mappings":"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","names":["Ch","pipe","O","isPipeCall","ts","node","isCallExpression","expression","isIdentifier","getText","getSourceFile","asPipeableCallExpression","none","arguments","length","arg","isArrowFunction","isStringLiteral","isNumericLiteral","some","asPipeArguments","initialNode","result","empty","currentNode","isSome","value","maybePipeable","isNone","append","exp","reverse","isPipeableCallExpression","isCombinatorCall","moduleIdentifier","moduleMethodName","left","isPropertyAccessExpression","leftModule","leftName","name","text","findModuleImportIdentifierName","sourceFile","moduleName","fromNullable","forEachChild","isImportDeclaration","moduleSpecifier","importClause","namedBindings","isNamespaceImport","isCurryArrow","arrow","parameters","parameter","parameterName","body","args","identifier","isLiteralConstantValue","kind","SyntaxKind","TrueKeyword","FalseKeyword","NullKeyword","transformAsyncAwaitToEffectGen","effectName","onAwait","visitor","_","isAwaitExpression","visitEachChild","nullTransformationContext","factory","createYieldExpression","createToken","AsteriskToken","createCallExpression","createIdentifier","undefined","generatorBody","generator","createFunctionExpression","createParameterDeclaration","effectGenCallExp","createPropertyAccessExpression","currentFlags","getCombinedModifierFlags","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","end","prefix","removeReturnTypeAnnotation","type","deleteRange","pos"],"sourceRoot":"","sources":["../../src/utils.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"utils.mjs","mappings":"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","names":["Ch","pipe","O","isPipeCall","ts","node","isCallExpression","expression","isIdentifier","getText","getSourceFile","asPipeableCallExpression","none","arguments","length","arg","isArrowFunction","isStringLiteral","isNumericLiteral","some","asPipeArguments","initialNode","result","empty","currentNode","isSome","value","maybePipeable","isNone","append","exp","reverse","isPipeableCallExpression","isCombinatorCall","moduleIdentifier","moduleMethodName","left","isPropertyAccessExpression","leftModule","leftName","name","text","findModuleImportIdentifierName","sourceFile","moduleName","fromNullable","forEachChild","isImportDeclaration","moduleSpecifier","importClause","namedBindings","isNamespaceImport","isCurryArrow","arrow","parameters","parameter","parameterName","body","args","identifier","isLiteralConstantValue","kind","SyntaxKind","TrueKeyword","FalseKeyword","NullKeyword","transformAsyncAwaitToEffectGen","effectName","onAwait","visitor","_","isAwaitExpression","visitEachChild","nullTransformationContext","factory","createYieldExpression","createToken","AsteriskToken","createCallExpression","createIdentifier","undefined","generatorBody","generator","createFunctionExpression","createParameterDeclaration","effectGenCallExp","createPropertyAccessExpression","currentFlags","getCombinedModifierFlags","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","end","prefix","removeReturnTypeAnnotation","type","deleteRange","pos","getEffectModuleIdentifier","orElse","getOrElse"],"sourceRoot":"","sources":["../../src/utils.ts"],"sourcesContent":[null]}
@@ -1,3 +1,10 @@
1
+ import * as AST from "@effect/language-service/ast";
2
+ export declare const noSyncWithConstantMethodsMap: {
3
+ sync: string;
4
+ failSync: string;
5
+ dieSync: string;
6
+ };
7
+ export declare function isEffectSyncWithConstantCall(ts: AST.TypeScriptApi): (moduleIdentifier: string, methodName: string) => (node: ts.Node) => node is import("typescript/lib/tsserverlibrary").CallExpression;
1
8
  declare const _default: import("@effect/language-service/diagnostics/definition").DiagnosticDefinition;
2
9
  export default _default;
3
10
  //# sourceMappingURL=noSyncWithConstant.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"noSyncWithConstant.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/noSyncWithConstant.ts"],"names":[],"mappings":";AAaA,wBAgDE"}
1
+ {"version":3,"file":"noSyncWithConstant.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/noSyncWithConstant.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAA;AAOnD,eAAO,MAAM,4BAA4B;;;;CAIxC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,sBACtC,MAAM,cAAc,MAAM,YAC3C,GAAG,IAAI,qEASjB;;AAED,wBA6BE"}
@@ -4,36 +4,43 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ exports.isEffectSyncWithConstantCall = isEffectSyncWithConstantCall;
8
+ exports.noSyncWithConstantMethodsMap = void 0;
7
9
  var T = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/core/io/Effect"));
8
10
  var AST = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/language-service/ast"));
9
11
  var _definition = /*#__PURE__*/require("@effect/language-service/diagnostics/definition");
10
12
  var _utils = /*#__PURE__*/require("@effect/language-service/utils");
11
13
  var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
12
14
  var _Function = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
13
- var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
14
15
  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
16
  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; }
17
+ const noSyncWithConstantMethodsMap = {
18
+ sync: "succeed",
19
+ failSync: "fail",
20
+ dieSync: "die"
21
+ };
22
+ exports.noSyncWithConstantMethodsMap = noSyncWithConstantMethodsMap;
23
+ function isEffectSyncWithConstantCall(ts) {
24
+ return (moduleIdentifier, methodName) => node => {
25
+ if ((0, _utils.isCombinatorCall)(ts)(moduleIdentifier, methodName)(node) && node.arguments.length === 1) {
26
+ const arg = node.arguments[0];
27
+ if (ts.isArrowFunction(arg) && (0, _utils.isLiteralConstantValue)(ts)(arg.body)) {
28
+ return true;
29
+ }
30
+ }
31
+ return false;
32
+ };
33
+ }
16
34
  var _default = /*#__PURE__*/(0, _definition.createDiagnostic)({
17
35
  code: 1002,
18
36
  category: "warning",
19
37
  apply: sourceFile => T.gen(function* ($) {
20
38
  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
- };
39
+ const effectIdentifier = (0, _utils.getEffectModuleIdentifier)(ts)(sourceFile);
27
40
  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 => ({
41
+ for (const methodName of Object.keys(noSyncWithConstantMethodsMap)) {
42
+ const suggestedMethodName = noSyncWithConstantMethodsMap[methodName];
43
+ result = (0, _Function.pipe)(result, Ch.concat((0, _Function.pipe)(AST.collectAll(ts)(sourceFile, isEffectSyncWithConstantCall(ts)(effectIdentifier, methodName)), Ch.map(node => ({
37
44
  node,
38
45
  messageText: `Value is constant, instead of using ${methodName} you could use ${suggestedMethodName}.`
39
46
  })))));
@@ -1 +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]}
1
+ {"version":3,"file":"noSyncWithConstant.js","mappings":";;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AACA;AAAmD;AAAA;AAE5C,MAAMA,4BAA4B,GAAG;EAC1CC,IAAI,EAAE,SAAS;EACfC,QAAQ,EAAE,MAAM;EAChBC,OAAO,EAAE;CACV;AAAA;AAEK,SAAUC,4BAA4B,CAACC,EAAqB;EAChE,OAAO,CAACC,gBAAwB,EAAEC,UAAkB,KACjDC,IAAa,IAA+B;IAC3C,IAAI,2BAAgB,EAACH,EAAE,CAAC,CAACC,gBAAgB,EAAEC,UAAU,CAAC,CAACC,IAAI,CAAC,IAAIA,IAAI,CAACC,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;MAC3F,MAAMC,GAAG,GAAGH,IAAI,CAACC,SAAS,CAAC,CAAC,CAAC;MAC7B,IAAIJ,EAAE,CAACO,eAAe,CAACD,GAAG,CAAC,IAAI,iCAAsB,EAACN,EAAE,CAAC,CAACM,GAAG,CAACE,IAAI,CAAC,EAAE;QACnE,OAAO,IAAI;;;IAGf,OAAO,KAAK;EACd,CAAC;AACL;AAAC,4BAEc,gCAAgB,EAAC;EAC9BC,IAAI,EAAE,IAAI;EACVC,QAAQ,EAAE,SAAS;EACnBC,KAAK,EAAGC,UAAU,IAChBC,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;IACf,MAAMf,EAAE,GAAG,OAAOe,CAAC,CAACF,CAAC,CAACG,OAAO,CAACC,GAAG,CAACC,aAAa,CAAC,CAAC;IAEjD,MAAMC,gBAAgB,GAAG,oCAAyB,EAACnB,EAAE,CAAC,CAACY,UAAU,CAAC;IAElE,IAAIQ,MAAM,GAA0CC,EAAE,CAACC,KAAK,EAAE;IAE9D,KAAK,MAAMpB,UAAU,IAAIqB,MAAM,CAACC,IAAI,CAAC7B,4BAA4B,CAAC,EAAE;MAClE,MAAM8B,mBAAmB,GAAW9B,4BAA4B,CAACO,UAAU,CAAE;MAC7EkB,MAAM,GAAG,kBAAI,EACXA,MAAM,EACNC,EAAE,CAACK,MAAM,CACP,kBAAI,EACFT,GAAG,CAACU,UAAU,CAAC3B,EAAE,CAAC,CAACY,UAAU,EAAEb,4BAA4B,CAACC,EAAE,CAAC,CAACmB,gBAAgB,EAAEjB,UAAU,CAAC,CAAC,EAC9FmB,EAAE,CAACO,GAAG,CAAEzB,IAAI,KAAM;QAChBA,IAAI;QACJ0B,WAAW,EAAE,uCAAuC3B,UAAU,kBAAkBuB,mBAAmB;OACpG,CAAC,CAAC,CACJ,CACF,CACF;;IAGH,OAAOL,MAAM;EACf,CAAC;CACJ,CAAC;AAAA","names":["noSyncWithConstantMethodsMap","sync","failSync","dieSync","isEffectSyncWithConstantCall","ts","moduleIdentifier","methodName","node","arguments","length","arg","isArrowFunction","body","code","category","apply","sourceFile","T","gen","$","service","AST","TypeScriptApi","effectIdentifier","result","Ch","empty","Object","keys","suggestedMethodName","concat","collectAll","map","messageText"],"sourceRoot":"","sources":["../../../src/diagnostics/noSyncWithConstant.ts"],"sourcesContent":[null]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/language-service",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1 +1 @@
1
- {"version":3,"file":"asyncAwaitToGen.d.ts","sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGen.ts"],"names":[],"mappings":";AAQA,wBAmCE"}
1
+ {"version":3,"file":"asyncAwaitToGen.d.ts","sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGen.ts"],"names":[],"mappings":";AAQA,wBAkCE"}
@@ -22,8 +22,7 @@ var _default = /*#__PURE__*/(0, _definition.createRefactor)({
22
22
  description: "Rewrite to Effect.gen",
23
23
  apply: T.gen(function* ($) {
24
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"));
25
+ const effectName = (0, _utils.getEffectModuleIdentifier)(ts)(sourceFile);
27
26
  const newDeclaration = (0, _utils.transformAsyncAwaitToEffectGen)(ts)(node, effectName, expression => ts.factory.createCallExpression(ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectName), "promise"), undefined, [expression]));
28
27
  changeTracker.replaceNode(sourceFile, node, newDeclaration);
29
28
  })
@@ -1 +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,yCAA8B,EAACrB,EAAE,CAAC,CAACQ,IAAI,EAAEW,UAAU,EAAGG,UAAU,IACrFtB,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;QAEJN,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]}
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,UAAU,GAAG,oCAAyB,EAAClB,EAAE,CAAC,CAACL,UAAU,CAAC;QAE5D,MAAMwB,cAAc,GAAG,yCAA8B,EAACnB,EAAE,CAAC,CAACQ,IAAI,EAAEU,UAAU,EAAGE,UAAU,IACrFpB,EAAE,CAACqB,OAAO,CAACC,oBAAoB,CAC7BtB,EAAE,CAACqB,OAAO,CAACE,8BAA8B,CACvCvB,EAAE,CAACqB,OAAO,CAACG,gBAAgB,CAACN,UAAU,CAAC,EACvC,SAAS,CACV,EACDO,SAAS,EACT,CAACL,UAAU,CAAC,CACb,CAAC;QAEJJ,aAAa,CAACU,WAAW,CAAC/B,UAAU,EAAEa,IAAI,EAAEW,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","effectName","newDeclaration","expression","factory","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGen.ts"],"sourcesContent":[null]}
@@ -1 +1 @@
1
- {"version":3,"file":"asyncAwaitToGenTryPromise.d.ts","sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGenTryPromise.ts"],"names":[],"mappings":";AAQA,wBA6DE"}
1
+ {"version":3,"file":"asyncAwaitToGenTryPromise.d.ts","sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGenTryPromise.ts"],"names":[],"mappings":";AAQA,wBA4DE"}
@@ -22,8 +22,7 @@ var _default = /*#__PURE__*/(0, _definition.createRefactor)({
22
22
  description: "Rewrite to Effect.gen with failures",
23
23
  apply: T.gen(function* ($) {
24
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"));
25
+ const effectName = (0, _utils.getEffectModuleIdentifier)(ts)(sourceFile);
27
26
  let errorCount = 0;
28
27
  function createErrorADT() {
29
28
  errorCount++;
@@ -1 +1 @@
1
- {"version":3,"file":"asyncAwaitToGenTryPromise.js","mappings":"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","names":["name","description","apply","sourceFile","textRange","T","gen","$","ts","service","AST","TypeScriptApi","getNodesContainingRange","Ch","filter","isFunctionDeclaration","node","body","getCombinedModifierFlags","ModifierFlags","Async","head","O","map","changeTracker","ChangeTrackerApi","importedEffectName","effectName","getOrElse","errorCount","createErrorADT","factory","createObjectLiteralExpression","createPropertyAssignment","createAsExpression","createStringLiteral","createTypeReferenceNode","createShorthandPropertyAssignment","newDeclaration","expression","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","createArrowFunction","createParameterDeclaration","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGenTryPromise.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"asyncAwaitToGenTryPromise.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAA8C;AAAA;AAAA,4BAE/B,8BAAc,EAAC;EAC5BA,IAAI,EAAE,kCAAkC;EACxCC,WAAW,EAAE,qCAAqC;EAClDC,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,qCAAqC;MAClDC,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,UAAU,GAAG,oCAAyB,EAAClB,EAAE,CAAC,CAACL,UAAU,CAAC;QAE5D,IAAIwB,UAAU,GAAG,CAAC;QAElB,SAASC,cAAc;UACrBD,UAAU,EAAE;UACZ,OAAOnB,EAAE,CAACqB,OAAO,CAACC,6BAA6B,CAAC,CAC9CtB,EAAE,CAACqB,OAAO,CAACE,wBAAwB,CACjC,MAAM,EACNvB,EAAE,CAACqB,OAAO,CAACG,kBAAkB,CAC3BxB,EAAE,CAACqB,OAAO,CAACI,mBAAmB,CAAC,OAAO,GAAGN,UAAU,CAAC,EACpDnB,EAAE,CAACqB,OAAO,CAACK,uBAAuB,CAAC,OAAO,CAAC,CAC5C,CACF,EACD1B,EAAE,CAACqB,OAAO,CAACM,iCAAiC,CAAC,OAAO,CAAC,CACtD,CAAC;QACJ;QAEA,MAAMC,cAAc,GAAI,yCAA8B,EAAC5B,EAAE,CAAC,CAACQ,IAAI,EAAEU,UAAU,EAAGW,UAAU,IACtF7B,EAAE,CAACqB,OAAO,CAACS,oBAAoB,CAC7B9B,EAAE,CAACqB,OAAO,CAACU,8BAA8B,CACvC/B,EAAE,CAACqB,OAAO,CAACW,gBAAgB,CAACd,UAAU,CAAC,EACvC,iBAAiB,CAClB,EACDe,SAAS,EACT,CACEjC,EAAE,CAACqB,OAAO,CAACa,mBAAmB,CAACD,SAAS,EAAEA,SAAS,EAAE,EAAE,EAAEA,SAAS,EAAEA,SAAS,EAAEJ,UAAU,CAAC,EAC1F7B,EAAE,CAACqB,OAAO,CAACa,mBAAmB,CAC5BD,SAAS,EACTA,SAAS,EACT,CAACjC,EAAE,CAACqB,OAAO,CAACc,0BAA0B,CAACF,SAAS,EAAEA,SAAS,EAAE,OAAO,CAAC,CAAC,EACtEA,SAAS,EACTA,SAAS,EACTb,cAAc,EAAE,CACjB,CACF,CACF,CAAE;QAELJ,aAAa,CAACoB,WAAW,CAACzC,UAAU,EAAEa,IAAI,EAAEoB,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","effectName","errorCount","createErrorADT","factory","createObjectLiteralExpression","createPropertyAssignment","createAsExpression","createStringLiteral","createTypeReferenceNode","createShorthandPropertyAssignment","newDeclaration","expression","createCallExpression","createPropertyAccessExpression","createIdentifier","undefined","createArrowFunction","createParameterDeclaration","replaceNode"],"sourceRoot":"","sources":["../../../src/refactors/asyncAwaitToGenTryPromise.ts"],"sourcesContent":[null]}
@@ -8,6 +8,7 @@ declare const _default: {
8
8
  toggleTypeAnnotation: import("./definition").RefactorDefinition;
9
9
  toggleReturnTypeAnnotation: import("./definition").RefactorDefinition;
10
10
  wrapWithPipe: import("./definition").RefactorDefinition;
11
+ noSyncWithConstant: import("./definition").RefactorDefinition;
11
12
  };
12
13
  export default _default;
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/refactors/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAUA,wBAUC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/refactors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAWA,wBAWC"}
@@ -8,6 +8,7 @@ var _addPipe = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effec
8
8
  var _asyncAwaitToGen = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/asyncAwaitToGen"));
9
9
  var _asyncAwaitToGenTryPromise = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/asyncAwaitToGenTryPromise"));
10
10
  var _functionToArrow = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/functionToArrow"));
11
+ var _noSyncWithConstant = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/noSyncWithConstant"));
11
12
  var _removeCurryArrow = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/removeCurryArrow"));
12
13
  var _removePipe = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/removePipe"));
13
14
  var _toggleReturnTypeAnnotation = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@effect/language-service/refactors/toggleReturnTypeAnnotation"));
@@ -23,7 +24,8 @@ var _default = {
23
24
  functionToArrow: _functionToArrow.default,
24
25
  toggleTypeAnnotation: _toggleTypeAnnotation.default,
25
26
  toggleReturnTypeAnnotation: _toggleReturnTypeAnnotation.default,
26
- wrapWithPipe: _wrapWithPipe.default
27
+ wrapWithPipe: _wrapWithPipe.default,
28
+ noSyncWithConstant: _noSyncWithConstant.default
27
29
  };
28
30
  exports.default = _default;
29
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAA0E;AAAA,eAE3D;EACbA,eAAe,EAAfA,wBAAe;EACfC,yBAAyB,EAAzBA,kCAAyB;EACzBC,UAAU,EAAVA,mBAAU;EACVC,OAAO,EAAPA,gBAAO;EACPC,gBAAgB,EAAhBA,yBAAgB;EAChBC,eAAe,EAAfA,wBAAe;EACfC,oBAAoB,EAApBA,6BAAoB;EACpBC,0BAA0B,EAA1BA,mCAA0B;EAC1BC,YAAY,EAAZA;CACD;AAAA","names":["asyncAwaitToGen","asyncAwaitToGenTryPromise","removePipe","addPipe","removeCurryArrow","functionToArrow","toggleTypeAnnotation","toggleReturnTypeAnnotation","wrapWithPipe"],"sourceRoot":"","sources":["../../../src/refactors/index.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"index.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAA0E;AAAA,eAE3D;EACbA,eAAe,EAAfA,wBAAe;EACfC,yBAAyB,EAAzBA,kCAAyB;EACzBC,UAAU,EAAVA,mBAAU;EACVC,OAAO,EAAPA,gBAAO;EACPC,gBAAgB,EAAhBA,yBAAgB;EAChBC,eAAe,EAAfA,wBAAe;EACfC,oBAAoB,EAApBA,6BAAoB;EACpBC,0BAA0B,EAA1BA,mCAA0B;EAC1BC,YAAY,EAAZA,qBAAY;EACZC,kBAAkB,EAAlBA;CACD;AAAA","names":["asyncAwaitToGen","asyncAwaitToGenTryPromise","removePipe","addPipe","removeCurryArrow","functionToArrow","toggleTypeAnnotation","toggleReturnTypeAnnotation","wrapWithPipe","noSyncWithConstant"],"sourceRoot":"","sources":["../../../src/refactors/index.ts"],"sourcesContent":[null]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("@effect/language-service/refactors/definition").RefactorDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=noSyncWithConstant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noSyncWithConstant.d.ts","sourceRoot":"","sources":["../../../src/refactors/noSyncWithConstant.ts"],"names":[],"mappings":";AAYA,wBA+CE"}
@@ -0,0 +1,43 @@
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 _noSyncWithConstant = /*#__PURE__*/require("@effect/language-service/diagnostics/noSyncWithConstant");
10
+ var _definition = /*#__PURE__*/require("@effect/language-service/refactors/definition");
11
+ var _utils = /*#__PURE__*/require("@effect/language-service/utils");
12
+ var Ch = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/collections/Chunk"));
13
+ var _Function = /*#__PURE__*/require("@tsplus/stdlib/data/Function");
14
+ var O = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@tsplus/stdlib/data/Maybe"));
15
+ 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); }
16
+ 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; }
17
+ var _default = /*#__PURE__*/(0, _definition.createRefactor)({
18
+ name: "effect/addPipe",
19
+ description: "Rewrite using pipe",
20
+ apply: (sourceFile, textRange) => T.gen(function* ($) {
21
+ const ts = yield* $(T.service(AST.TypeScriptApi));
22
+ const effectIdentifier = (0, _utils.getEffectModuleIdentifier)(ts)(sourceFile);
23
+ const nodes = (0, _Function.pipe)(AST.getNodesContainingRange(ts)(sourceFile, textRange), Ch.reverse, Ch.from, Ch.filter(AST.isNodeInRange(textRange)));
24
+ for (const methodName of Object.keys(_noSyncWithConstant.noSyncWithConstantMethodsMap)) {
25
+ const suggestedMethodName = _noSyncWithConstant.noSyncWithConstantMethodsMap[methodName];
26
+ const refactor = (0, _Function.pipe)(nodes, Ch.filter((0, _noSyncWithConstant.isEffectSyncWithConstantCall)(ts)(effectIdentifier, methodName)), Ch.head, O.map(node => ({
27
+ description: `Rewrite ${methodName} to ${suggestedMethodName}`,
28
+ apply: T.gen(function* ($) {
29
+ const changeTracker = yield* $(T.service(AST.ChangeTrackerApi));
30
+ const arg = node.arguments[0];
31
+ if (ts.isArrowFunction(arg) && (0, _utils.isLiteralConstantValue)(ts)(arg.body)) {
32
+ const newNode = ts.factory.updateCallExpression(node, ts.factory.createPropertyAccessExpression(ts.factory.createIdentifier(effectIdentifier), suggestedMethodName), node.typeArguments, ts.factory.createNodeArray([arg.body]));
33
+ changeTracker.replaceNode(sourceFile, node, newNode);
34
+ }
35
+ })
36
+ })));
37
+ if (O.isSome(refactor)) return refactor;
38
+ }
39
+ return O.none;
40
+ })
41
+ });
42
+ exports.default = _default;
43
+ //# sourceMappingURL=noSyncWithConstant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noSyncWithConstant.js","mappings":";;;;;;AAAA;AACA;AACA;AAIA;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;IACjD,MAAMC,gBAAgB,GAAG,oCAAyB,EAACJ,EAAE,CAAC,CAACL,UAAU,CAAC;IAElE,MAAMU,KAAK,GAAG,kBAAI,EAChBH,GAAG,CAACI,uBAAuB,CAACN,EAAE,CAAC,CAACL,UAAU,EAAEC,SAAS,CAAC,EACtDW,EAAE,CAACC,OAAO,EACVD,EAAE,CAACE,IAAI,EACPF,EAAE,CAACG,MAAM,CAACR,GAAG,CAACS,aAAa,CAACf,SAAS,CAAC,CAAC,CACxC;IAED,KAAK,MAAMgB,UAAU,IAAIC,MAAM,CAACC,IAAI,CAACC,gDAA4B,CAAC,EAAE;MAClE,MAAMC,mBAAmB,GAAWD,gDAA4B,CAACH,UAAU,CAAE;MAC7E,MAAMK,QAAQ,GAAG,kBAAI,EACnBZ,KAAK,EACLE,EAAE,CAACG,MAAM,CAAC,oDAA4B,EAACV,EAAE,CAAC,CAACI,gBAAgB,EAAEQ,UAAU,CAAC,CAAC,EACzEL,EAAE,CAACW,IAAI,EACPC,CAAC,CAACC,GAAG,CAAEC,IAAI,KAAM;QACf5B,WAAW,EAAE,WAAWmB,UAAU,OAAOI,mBAAmB,EAAE;QAC9DtB,KAAK,EAAEG,CAAC,CAACC,GAAG,CAAC,WAAUC,CAAC;UACtB,MAAMuB,aAAa,GAAG,OAAOvB,CAAC,CAACF,CAAC,CAACI,OAAO,CAACC,GAAG,CAACqB,gBAAgB,CAAC,CAAC;UAC/D,MAAMC,GAAG,GAAGH,IAAI,CAACI,SAAS,CAAC,CAAC,CAAC;UAC7B,IAAIzB,EAAE,CAAC0B,eAAe,CAACF,GAAG,CAAC,IAAI,iCAAsB,EAACxB,EAAE,CAAC,CAACwB,GAAG,CAACG,IAAI,CAAC,EAAE;YACnE,MAAMC,OAAO,GAAG5B,EAAE,CAAC6B,OAAO,CAACC,oBAAoB,CAC7CT,IAAI,EACJrB,EAAE,CAAC6B,OAAO,CAACE,8BAA8B,CACvC/B,EAAE,CAAC6B,OAAO,CAACG,gBAAgB,CAAC5B,gBAAgB,CAAC,EAC7CY,mBAAmB,CACpB,EACDK,IAAI,CAACY,aAAa,EAClBjC,EAAE,CAAC6B,OAAO,CAACK,eAAe,CAAC,CAACV,GAAG,CAACG,IAAI,CAAC,CAAC,CACvC;YAEDL,aAAa,CAACa,WAAW,CAACxC,UAAU,EAAE0B,IAAI,EAAEO,OAAO,CAAC;;QAExD,CAAC;OACF,CAAC,CAAC,CACJ;MACD,IAAIT,CAAC,CAACiB,MAAM,CAACnB,QAAQ,CAAC,EAAE,OAAOA,QAAQ;;IAGzC,OAAOE,CAAC,CAACkB,IAAI;EACf,CAAC;CACJ,CAAC;AAAA","names":["name","description","apply","sourceFile","textRange","T","gen","$","ts","service","AST","TypeScriptApi","effectIdentifier","nodes","getNodesContainingRange","Ch","reverse","from","filter","isNodeInRange","methodName","Object","keys","noSyncWithConstantMethodsMap","suggestedMethodName","refactor","head","O","map","node","changeTracker","ChangeTrackerApi","arg","arguments","isArrowFunction","body","newNode","factory","updateCallExpression","createPropertyAccessExpression","createIdentifier","typeArguments","createNodeArray","replaceNode","isSome","none"],"sourceRoot":"","sources":["../../../src/refactors/noSyncWithConstant.ts"],"sourcesContent":[null]}
@@ -0,0 +1,23 @@
1
+ import ts from "typescript";
2
+ declare module "typescript" {
3
+ interface ImportSpecifier {
4
+ used?: number;
5
+ }
6
+ interface NamespaceImport {
7
+ used?: number;
8
+ }
9
+ }
10
+ export default function transformer(program: ts.Program, options?: {
11
+ trace?: {
12
+ include?: Array<string>;
13
+ exclude?: Array<string>;
14
+ };
15
+ optimize?: {
16
+ include?: Array<string>;
17
+ exclude?: Array<string>;
18
+ };
19
+ removeUnusedImports?: boolean;
20
+ }): {
21
+ before(ctx: ts.TransformationContext): (sourceFile: ts.SourceFile) => ts.SourceFile;
22
+ };
23
+ //# sourceMappingURL=transformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../src/transformer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAA;AAc3B,OAAO,QAAQ,YAAY,CAAC;IAC1B,UAAiB,eAAe;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;KACd;IACD,UAAiB,eAAe;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;KACd;CACF;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CACjC,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAA;IAC5D,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAA;IAC/D,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;gBAOa,GAAG,qBAAqB,gBACd,GAAG,UAAU;EAgNtC"}
package/transformer.js ADDED
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = transformer;
7
+ var _pluginutils = /*#__PURE__*/require("@rollup/pluginutils");
8
+ var _typescript = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("typescript"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ class RefCounted {
11
+ constructor(ref) {
12
+ this.ref = ref;
13
+ this.counter = 0;
14
+ }
15
+ get get() {
16
+ this.counter++;
17
+ return this.ref;
18
+ }
19
+ get count() {
20
+ return this.counter;
21
+ }
22
+ }
23
+ function transformer(program, options) {
24
+ const checker = program.getTypeChecker();
25
+ const traceFilter = (0, _pluginutils.createFilter)(options?.trace?.include, options?.trace?.exclude);
26
+ const optimizeFilter = (0, _pluginutils.createFilter)(options?.optimize?.include, options?.optimize?.exclude);
27
+ const removeUnusedImports = options?.removeUnusedImports ?? true;
28
+ return {
29
+ before(ctx) {
30
+ return sourceFile => {
31
+ if (sourceFile.isDeclarationFile) {
32
+ return sourceFile;
33
+ }
34
+ const tracer = new RefCounted(ctx.factory.createUniqueName("tracer"));
35
+ const fileName = new RefCounted(ctx.factory.createUniqueName("fileName"));
36
+ function getOriginal(node) {
37
+ let current = node;
38
+ while ("original" in current) {
39
+ current = current["original"];
40
+ }
41
+ return current;
42
+ }
43
+ function getTrace(node) {
44
+ try {
45
+ const pos = getOriginal(node).getStart();
46
+ const nodeEnd = sourceFile.getLineAndCharacterOfPosition(pos);
47
+ return ctx.factory.createBinaryExpression(fileName.get, ctx.factory.createToken(_typescript.default.SyntaxKind.PlusToken), ctx.factory.createStringLiteral(`:${nodeEnd.line + 1}:${nodeEnd.character + 1}`));
48
+ } catch (e) {
49
+ return undefined;
50
+ }
51
+ }
52
+ const traceVisitor = node => {
53
+ const visited = _typescript.default.visitEachChild(node, traceVisitor, ctx);
54
+ if (_typescript.default.isCallExpression(visited)) {
55
+ let shouldEmbedTrace = false;
56
+ const signature = checker.getResolvedSignature(visited);
57
+ const declaration = signature?.declaration;
58
+ if (declaration) {
59
+ shouldEmbedTrace = _typescript.default.getAllJSDocTags(declaration, tag => tag.tagName.text === "macro" && tag.comment === "traced").length > 0;
60
+ }
61
+ if (!shouldEmbedTrace) {
62
+ shouldEmbedTrace = (checker.getSymbolAtLocation(visited.expression)?.getJsDocTags(checker).filter(tag => tag.name === "macro" && tag.text && tag.text.map(d => d.text).join("\n") === "traced") || []).length > 0;
63
+ }
64
+ if (shouldEmbedTrace) {
65
+ const trace = getTrace(_typescript.default.isPropertyAccessExpression(visited.expression) ? visited.expression.name : visited.expression);
66
+ if (typeof trace !== "undefined") {
67
+ return ctx.factory.createCallExpression(ctx.factory.createCallExpression(ctx.factory.createPropertyAccessExpression(tracer.get, "withCallTrace"), [], [trace]), [], [visited]);
68
+ }
69
+ }
70
+ }
71
+ return visited;
72
+ };
73
+ const findSource = node => {
74
+ while (!_typescript.default.isSourceFile(node)) {
75
+ node = node.parent;
76
+ }
77
+ return node;
78
+ };
79
+ const optimizeVisitor = node => {
80
+ const visited = _typescript.default.visitEachChild(node, optimizeVisitor, ctx);
81
+ if (_typescript.default.isCallExpression(visited) && visited.arguments.length > 0) {
82
+ const signature = checker.getResolvedSignature(visited);
83
+ const declaration = signature?.declaration;
84
+ if (declaration && !_typescript.default.isJSDocSignature(declaration) && findSource(declaration).fileName.includes("@fp-ts/data/Function")) {
85
+ if (declaration.name?.getText() === "pipe") {
86
+ let expr = _typescript.default.visitNode(visited.arguments[0], optimizeVisitor);
87
+ for (let i = 1; i < visited.arguments.length; i++) {
88
+ expr = ctx.factory.createCallExpression(_typescript.default.visitNode(visited.arguments[i], optimizeVisitor), [], [expr]);
89
+ }
90
+ return expr;
91
+ }
92
+ }
93
+ }
94
+ return visited;
95
+ };
96
+ const usedImportsVisitor = node => {
97
+ if (_typescript.default.isImportDeclaration(node) && node.importClause) {
98
+ if (node.importClause.namedBindings && _typescript.default.isNamedImports(node.importClause.namedBindings)) {
99
+ node.importClause.namedBindings.elements.forEach(specifier => {
100
+ specifier.used = 1;
101
+ });
102
+ } else if (node.importClause.namedBindings && _typescript.default.isNamespaceImport(node.importClause.namedBindings)) {
103
+ node.importClause.namedBindings.used = 1;
104
+ }
105
+ } else if (_typescript.default.isIdentifier(node) && node.parent && !_typescript.default.isImportSpecifier(node.parent) && !_typescript.default.isNamespaceImport(node.parent)) {
106
+ checker.getSymbolAtLocation(node)?.declarations?.forEach(d => {
107
+ if (_typescript.default.isImportSpecifier(d) || _typescript.default.isNamespaceImport(d)) {
108
+ d.used = (d.used ?? 1) + 1;
109
+ }
110
+ });
111
+ }
112
+ return _typescript.default.visitEachChild(node, usedImportsVisitor, ctx);
113
+ };
114
+ let visited = sourceFile;
115
+ if (optimizeFilter(sourceFile.fileName)) {
116
+ visited = _typescript.default.visitNode(visited, optimizeVisitor);
117
+ }
118
+ if (traceFilter(sourceFile.fileName)) {
119
+ visited = _typescript.default.visitNode(visited, traceVisitor);
120
+ }
121
+ if (removeUnusedImports) {
122
+ visited = _typescript.default.visitNode(visited, usedImportsVisitor);
123
+ }
124
+ const statements = [];
125
+ if (tracer.count > 0) {
126
+ statements.push(ctx.factory.createImportDeclaration(undefined, ctx.factory.createImportClause(false, undefined, ctx.factory.createNamespaceImport(tracer.get)), ctx.factory.createStringLiteral("@effect/io/Debug")));
127
+ }
128
+ if (fileName.count > 0) {
129
+ statements.push(ctx.factory.createVariableStatement(undefined, ctx.factory.createVariableDeclarationList([ctx.factory.createVariableDeclaration(fileName.get, undefined, undefined, ctx.factory.createStringLiteral(sourceFile.fileName))], _typescript.default.NodeFlags.Const)));
130
+ }
131
+ for (const statement of visited.statements) {
132
+ statements.push(statement);
133
+ }
134
+ return ctx.factory.updateSourceFile(visited, statements.filter(statement => {
135
+ if (!removeUnusedImports) {
136
+ return true;
137
+ }
138
+ if (_typescript.default.isImportDeclaration(statement) && statement.importClause) {
139
+ if (statement.importClause.namedBindings && _typescript.default.isNamedImports(statement.importClause.namedBindings)) {
140
+ if (statement.importClause.namedBindings.elements.every(specifier => specifier.used === 0)) {
141
+ return false;
142
+ }
143
+ } else if (statement.importClause.namedBindings && _typescript.default.isNamespaceImport(statement.importClause.namedBindings)) {
144
+ if (statement.importClause.namedBindings.used === 0) {
145
+ return false;
146
+ }
147
+ }
148
+ }
149
+ return true;
150
+ }), visited.isDeclarationFile, visited.referencedFiles, visited.typeReferenceDirectives, visited.hasNoDefaultLib, visited.libReferenceDirectives);
151
+ };
152
+ }
153
+ };
154
+ }
155
+ //# sourceMappingURL=transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformer.js","mappings":"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","names":["RefCounted","constructor","ref","get","counter","count","transformer","program","options","checker","getTypeChecker","traceFilter","trace","include","exclude","optimizeFilter","optimize","removeUnusedImports","before","ctx","sourceFile","isDeclarationFile","tracer","factory","createUniqueName","fileName","getOriginal","node","current","getTrace","pos","getStart","nodeEnd","getLineAndCharacterOfPosition","createBinaryExpression","createToken","ts","SyntaxKind","PlusToken","createStringLiteral","line","character","e","undefined","traceVisitor","visited","visitEachChild","isCallExpression","shouldEmbedTrace","signature","getResolvedSignature","declaration","getAllJSDocTags","tag","tagName","text","comment","length","getSymbolAtLocation","expression","getJsDocTags","filter","name","map","d","join","isPropertyAccessExpression","createCallExpression","createPropertyAccessExpression","findSource","isSourceFile","parent","optimizeVisitor","arguments","isJSDocSignature","includes","getText","expr","visitNode","i","usedImportsVisitor","isImportDeclaration","importClause","namedBindings","isNamedImports","elements","forEach","specifier","used","isNamespaceImport","isIdentifier","isImportSpecifier","declarations","statements","push","createImportDeclaration","createImportClause","createNamespaceImport","createVariableStatement","createVariableDeclarationList","createVariableDeclaration","NodeFlags","Const","statement","updateSourceFile","every","referencedFiles","typeReferenceDirectives","hasNoDefaultLib","libReferenceDirectives"],"sourceRoot":"","sources":["../../src/transformer.ts"],"sourcesContent":[null]}
package/utils.d.ts CHANGED
@@ -8,8 +8,9 @@ export declare function isPipeableCallExpression(ts: AST.TypeScriptApi): (node:
8
8
  export declare function isCombinatorCall(ts: AST.TypeScriptApi): (moduleIdentifier: string, moduleMethodName: string) => (node: ts.Node) => node is ts.CallExpression;
9
9
  export declare function findModuleImportIdentifierName(ts: AST.TypeScriptApi): (sourceFile: ts.SourceFile, moduleName: string) => O.Maybe<string>;
10
10
  export declare function isCurryArrow(ts: AST.TypeScriptApi): (arrow: ts.Node) => arrow is ts.ArrowFunction;
11
- export declare function isLiteralConstantValue(ts: AST.TypeScriptApi): (node: ts.Node) => boolean;
11
+ export declare function isLiteralConstantValue(ts: AST.TypeScriptApi): (node: ts.Node) => node is ts.StringLiteral | ts.NumericLiteral | ts.TrueLiteral | ts.FalseLiteral;
12
12
  export declare function transformAsyncAwaitToEffectGen(ts: AST.TypeScriptApi): (node: ts.FunctionDeclaration | ts.ArrowFunction | ts.FunctionExpression, effectName: string, onAwait: (expression: ts.Expression) => ts.Expression) => ts.FunctionDeclaration | ts.FunctionExpression | ts.ArrowFunction;
13
13
  export declare function addReturnTypeAnnotation(ts: AST.TypeScriptApi, changes: ts.textChanges.ChangeTracker): (sourceFile: ts.SourceFile, declaration: ts.FunctionDeclaration | ts.FunctionExpression | ts.ArrowFunction | ts.MethodDeclaration, typeNode: ts.TypeNode) => void;
14
14
  export declare function removeReturnTypeAnnotation(ts: AST.TypeScriptApi, changes: ts.textChanges.ChangeTracker): (sourceFile: ts.SourceFile, declaration: ts.FunctionDeclaration | ts.FunctionExpression | ts.ArrowFunction | ts.MethodDeclaration) => void;
15
+ export declare function getEffectModuleIdentifier(ts: AST.TypeScriptApi): (sourceFile: ts.SourceFile) => string;
15
16
  //# sourceMappingURL=utils.d.ts.map
package/utils.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,8BAA8B,CAAA;AAGxD,OAAO,KAAK,CAAC,MAAM,2BAA2B,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAEpD,wBAAgB,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAChC,GAAG,IAAI,+BAOtB;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAC9C,GAAG,IAAI,0EAatB;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,iBAC9B,GAAG,IAAI,6BAgB7B;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAC9C,GAAG,IAAI,+BACtB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,sBAC1B,MAAM,oBAAoB,MAAM,YACjD,GAAG,IAAI,+BAYjB;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,GAAG,CAAC,aAAa,gBAED,GAAG,UAAU,cAAc,MAAM,qBActD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,WACjC,GAAG,IAAI,+BAcvB;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAC5C,GAAG,IAAI,aAKtB;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,GAAG,CAAC,aAAa,UAGb,GAAG,mBAAmB,GAAG,GAAG,aAAa,GAAG,GAAG,kBAAkB,cAC3D,MAAM,wBACI,GAAG,UAAU,KAAK,GAAG,UAAU,uEA0ExD;AAED,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,GAAG,CAAC,aAAa,EACrB,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,gBAGvB,GAAG,UAAU,eAErB,GAAG,mBAAmB,GACtB,GAAG,kBAAkB,GACrB,GAAG,aAAa,GAChB,GAAG,iBAAiB,YACd,GAAG,QAAQ,UAaxB;AAED,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,GAAG,CAAC,aAAa,EACrB,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,gBAGvB,GAAG,UAAU,eAErB,GAAG,mBAAmB,GACtB,GAAG,kBAAkB,GACrB,GAAG,aAAa,GAChB,GAAG,iBAAiB,UAS3B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,8BAA8B,CAAA;AAGxD,OAAO,KAAK,CAAC,MAAM,2BAA2B,CAAA;AAC9C,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAA;AAEpD,wBAAgB,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAChC,GAAG,IAAI,+BAOtB;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAC9C,GAAG,IAAI,0EAatB;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,iBAC9B,GAAG,IAAI,6BAgB7B;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAC9C,GAAG,IAAI,+BACtB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,sBAC1B,MAAM,oBAAoB,MAAM,YACjD,GAAG,IAAI,+BAYjB;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,GAAG,CAAC,aAAa,gBAED,GAAG,UAAU,cAAc,MAAM,qBActD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,WACjC,GAAG,IAAI,+BAcvB;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,UAC5C,GAAG,IAAI,qFAKtB;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,GAAG,CAAC,aAAa,UAGb,GAAG,mBAAmB,GAAG,GAAG,aAAa,GAAG,GAAG,kBAAkB,cAC3D,MAAM,wBACI,GAAG,UAAU,KAAK,GAAG,UAAU,uEA0ExD;AAED,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,GAAG,CAAC,aAAa,EACrB,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,gBAGvB,GAAG,UAAU,eAErB,GAAG,mBAAmB,GACtB,GAAG,kBAAkB,GACrB,GAAG,aAAa,GAChB,GAAG,iBAAiB,YACd,GAAG,QAAQ,UAaxB;AAED,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,GAAG,CAAC,aAAa,EACrB,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,gBAGvB,GAAG,UAAU,eAErB,GAAG,mBAAmB,GACtB,GAAG,kBAAkB,GACrB,GAAG,aAAa,GAChB,GAAG,iBAAiB,UAS3B;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,GAAG,CAAC,aAAa,gBACzC,GAAG,UAAU,YAQlC"}
package/utils.js CHANGED
@@ -7,6 +7,7 @@ exports.addReturnTypeAnnotation = addReturnTypeAnnotation;
7
7
  exports.asPipeArguments = asPipeArguments;
8
8
  exports.asPipeableCallExpression = asPipeableCallExpression;
9
9
  exports.findModuleImportIdentifierName = findModuleImportIdentifierName;
10
+ exports.getEffectModuleIdentifier = getEffectModuleIdentifier;
10
11
  exports.isCombinatorCall = isCombinatorCall;
11
12
  exports.isCurryArrow = isCurryArrow;
12
13
  exports.isLiteralConstantValue = isLiteralConstantValue;
@@ -112,7 +113,7 @@ function isCurryArrow(ts) {
112
113
  }
113
114
  function isLiteralConstantValue(ts) {
114
115
  return node => {
115
- return ts.isIdentifier(node) || ts.isStringLiteral(node) || ts.isNumericLiteral(node) || node.kind === ts.SyntaxKind.TrueKeyword || node.kind === ts.SyntaxKind.FalseKeyword || node.kind === ts.SyntaxKind.NullKeyword;
116
+ return ts.isStringLiteral(node) || ts.isNumericLiteral(node) || node.kind === ts.SyntaxKind.TrueKeyword || node.kind === ts.SyntaxKind.FalseKeyword || node.kind === ts.SyntaxKind.NullKeyword;
116
117
  };
117
118
  }
118
119
  function transformAsyncAwaitToEffectGen(ts) {
@@ -171,4 +172,7 @@ function removeReturnTypeAnnotation(ts, changes) {
171
172
  }
172
173
  };
173
174
  }
175
+ function getEffectModuleIdentifier(ts) {
176
+ return sourceFile => (0, _Function.pipe)(findModuleImportIdentifierName(ts)(sourceFile, "@effect/core/io/Effect"), O.orElse(() => findModuleImportIdentifierName(ts)(sourceFile, "@effect/io/Effect")), O.getOrElse(() => "Effect"));
177
+ }
174
178
  //# sourceMappingURL=utils.js.map
package/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","mappings":"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","names":["isPipeCall","ts","node","isCallExpression","expression","isIdentifier","getText","getSourceFile","asPipeableCallExpression","O","none","arguments","length","arg","isArrowFunction","isStringLiteral","isNumericLiteral","some","asPipeArguments","initialNode","result","Ch","empty","currentNode","isSome","value","maybePipeable","isNone","append","exp","reverse","isPipeableCallExpression","isCombinatorCall","moduleIdentifier","moduleMethodName","left","isPropertyAccessExpression","leftModule","leftName","name","text","findModuleImportIdentifierName","sourceFile","moduleName","fromNullable","forEachChild","isImportDeclaration","moduleSpecifier","importClause","namedBindings","isNamespaceImport","isCurryArrow","arrow","parameters","parameter","parameterName","body","args","identifier","isLiteralConstantValue","kind","SyntaxKind","TrueKeyword","FalseKeyword","NullKeyword","transformAsyncAwaitToEffectGen","effectName","onAwait","visitor","_","isAwaitExpression","visitEachChild","nullTransformationContext","factory","createYieldExpression","createToken","AsteriskToken","createCallExpression","createIdentifier","undefined","generatorBody","generator","createFunctionExpression","createParameterDeclaration","effectGenCallExp","createPropertyAccessExpression","currentFlags","getCombinedModifierFlags","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","end","prefix","removeReturnTypeAnnotation","type","deleteRange","pos"],"sourceRoot":"","sources":["../../src/utils.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"utils.js","mappings":"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","names":["isPipeCall","ts","node","isCallExpression","expression","isIdentifier","getText","getSourceFile","asPipeableCallExpression","O","none","arguments","length","arg","isArrowFunction","isStringLiteral","isNumericLiteral","some","asPipeArguments","initialNode","result","Ch","empty","currentNode","isSome","value","maybePipeable","isNone","append","exp","reverse","isPipeableCallExpression","isCombinatorCall","moduleIdentifier","moduleMethodName","left","isPropertyAccessExpression","leftModule","leftName","name","text","findModuleImportIdentifierName","sourceFile","moduleName","fromNullable","forEachChild","isImportDeclaration","moduleSpecifier","importClause","namedBindings","isNamespaceImport","isCurryArrow","arrow","parameters","parameter","parameterName","body","args","identifier","isLiteralConstantValue","kind","SyntaxKind","TrueKeyword","FalseKeyword","NullKeyword","transformAsyncAwaitToEffectGen","effectName","onAwait","visitor","_","isAwaitExpression","visitEachChild","nullTransformationContext","factory","createYieldExpression","createToken","AsteriskToken","createCallExpression","createIdentifier","undefined","generatorBody","generator","createFunctionExpression","createParameterDeclaration","effectGenCallExp","createPropertyAccessExpression","currentFlags","getCombinedModifierFlags","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","end","prefix","removeReturnTypeAnnotation","type","deleteRange","pos","getEffectModuleIdentifier","orElse","getOrElse"],"sourceRoot":"","sources":["../../src/utils.ts"],"sourcesContent":[null]}