@effect/language-service 0.47.3 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/language-service",
3
- "version": "0.47.3",
3
+ "version": "0.48.0",
4
4
  "description": "A Language-Service Plugin to Refactor and Diagnostic effect-ts projects",
5
5
  "main": "index.cjs",
6
6
  "bin": {
package/transform.js CHANGED
@@ -1210,7 +1210,7 @@ function parseKeyPatterns(patterns) {
1210
1210
  if (!isObject(entry)) continue;
1211
1211
  result.push({
1212
1212
  target: hasProperty(entry, "target") && isString(entry.target) && ["service", "error", "custom"].includes(entry.target.toLowerCase()) ? entry.target.toLowerCase() : "service",
1213
- pattern: hasProperty(entry, "pattern") && isString(entry.pattern) && ["package-identifier", "default"].includes(entry.pattern.toLowerCase()) ? entry.pattern.toLowerCase() : "default",
1213
+ pattern: hasProperty(entry, "pattern") && isString(entry.pattern) && ["package-identifier", "default", "default-hashed"].includes(entry.pattern.toLowerCase()) ? entry.pattern.toLowerCase() : "default",
1214
1214
  skipLeadingPath: hasProperty(entry, "skipLeadingPath") && isArray(entry.skipLeadingPath) && entry.skipLeadingPath.every(isString) ? entry.skipLeadingPath : ["src/"]
1215
1215
  });
1216
1216
  }
@@ -2361,17 +2361,21 @@ function makeTypeCheckerUtils(ts, typeChecker, tsUtils) {
2361
2361
  return result;
2362
2362
  };
2363
2363
  function typeToSimplifiedTypeNode(type, enclosingNode, flags) {
2364
+ return typeToSimplifiedTypeNodeWorker(type, enclosingNode, flags, 0);
2365
+ }
2366
+ function typeToSimplifiedTypeNodeWorker(type, enclosingNode, flags, depth) {
2364
2367
  const fallbackStandard = () => {
2365
2368
  const typeNode = typeChecker.typeToTypeNode(type, enclosingNode, flags);
2366
2369
  if (!typeNode) return void 0;
2367
2370
  return tsUtils.simplifyTypeNode(typeNode);
2368
2371
  };
2372
+ if (depth > 20) return fallbackStandard();
2369
2373
  const members = unrollUnionMembers(type);
2370
- if (members.length > 1) {
2374
+ if (members.length > 1 && !(type.flags & ts.TypeFlags.Boolean)) {
2371
2375
  const typeNodes = [];
2372
2376
  members.sort(deterministicTypeOrder);
2373
2377
  for (const member of members) {
2374
- const memberNode = typeToSimplifiedTypeNode(member, enclosingNode, flags);
2378
+ const memberNode = typeToSimplifiedTypeNodeWorker(member, enclosingNode, flags, depth + 1);
2375
2379
  if (!memberNode) return fallbackStandard();
2376
2380
  typeNodes.push(memberNode);
2377
2381
  }
@@ -2381,7 +2385,7 @@ function makeTypeCheckerUtils(ts, typeChecker, tsUtils) {
2381
2385
  const intersectionType = type;
2382
2386
  const typeNodes = [];
2383
2387
  for (const member of intersectionType.types) {
2384
- const memberNode = typeToSimplifiedTypeNode(member, enclosingNode, flags);
2388
+ const memberNode = typeToSimplifiedTypeNodeWorker(member, enclosingNode, flags, depth + 1);
2385
2389
  if (!memberNode) return fallbackStandard();
2386
2390
  typeNodes.push(memberNode);
2387
2391
  }
@@ -2417,7 +2421,7 @@ function makeTypeCheckerUtils(ts, typeChecker, tsUtils) {
2417
2421
  if (signatures.length !== 1) return standard2;
2418
2422
  const returnType = typeChecker.getReturnTypeOfSignature(signatures[0]);
2419
2423
  if (!returnType) return standard2;
2420
- const returnTypeNode = typeToSimplifiedTypeNode(returnType, enclosingNode, flags);
2424
+ const returnTypeNode = typeToSimplifiedTypeNodeWorker(returnType, enclosingNode, flags, depth + 1);
2421
2425
  if (!returnTypeNode) return standard2;
2422
2426
  return tsUtils.simplifyTypeNode(ts.factory.updateFunctionTypeNode(
2423
2427
  standard2,
@@ -3616,7 +3620,8 @@ var makeKeyBuilder = fn("KeyBuilder")(
3616
3620
  parts = parts.map((part) => part.startsWith("/") ? part.slice(1) : part).map(
3617
3621
  (part) => part.endsWith("/") ? part.slice(0, -1) : part
3618
3622
  );
3619
- return parts.filter((_) => String(_).trim().length > 0).join("/");
3623
+ const fullKey = parts.filter((_) => String(_).trim().length > 0).join("/");
3624
+ return keyPattern.pattern === "default-hashed" ? cyrb53(fullKey) : fullKey;
3620
3625
  }
3621
3626
  }
3622
3627
  return {
@@ -5562,7 +5567,7 @@ var tryCatchInEffectGen = createDiagnostic({
5562
5567
  while (nodeToVisit.length > 0) {
5563
5568
  const node = nodeToVisit.shift();
5564
5569
  ts.forEachChild(node, appendNodeToVisit);
5565
- if (ts.isTryStatement(node)) {
5570
+ if (ts.isTryStatement(node) && node.catchClause) {
5566
5571
  const generatorOrRegularFunction = ts.findAncestor(
5567
5572
  node,
5568
5573
  (_) => ts.isFunctionExpression(_) || ts.isFunctionDeclaration(_) || ts.isMethodDeclaration(_) || ts.isArrowFunction(_) || ts.isGetAccessor(_) || ts.isFunctionLike(_)