@effect/language-service 0.20.0 → 0.20.1

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/index.js CHANGED
@@ -4717,12 +4717,21 @@ var processNode = (node, isVirtualTypeNode) => gen2(function* () {
4717
4717
  [ts.factory.createObjectLiteralExpression(properties, true)].concat(records)
4718
4718
  );
4719
4719
  }
4720
+ if (ts.isParenthesizedTypeNode(node)) {
4721
+ return yield* processNode(node.type, isVirtualTypeNode);
4722
+ }
4720
4723
  if (ts.isTypeQueryNode(node)) {
4721
4724
  const typeChecker = yield* service(TypeCheckerApi);
4722
4725
  const type = typeChecker.getTypeAtLocation(node.exprName);
4723
4726
  const typeNode = typeChecker.typeToTypeNode(type, void 0, ts.NodeBuilderFlags.NoTruncation);
4724
4727
  if (typeNode) return yield* processNode(typeNode, true);
4725
4728
  }
4729
+ if (!isVirtualTypeNode && ts.isIndexedAccessTypeNode(node) && ts.isParenthesizedTypeNode(node.objectType) && ts.isTypeQueryNode(node.objectType.type) && ts.isTypeOperatorNode(node.indexType) && node.indexType.operator === ts.SyntaxKind.KeyOfKeyword && ts.isTypeQueryNode(node.indexType.type) && node.indexType.type.exprName.getText().trim() === node.objectType.type.exprName.getText().trim()) {
4730
+ const typeChecker = yield* service(TypeCheckerApi);
4731
+ const type = typeChecker.getTypeAtLocation(node);
4732
+ const typeNode = typeChecker.typeToTypeNode(type, void 0, ts.NodeBuilderFlags.NoTruncation);
4733
+ if (typeNode) return yield* processNode(typeNode, true);
4734
+ }
4726
4735
  if (ts.isTypeReferenceNode(node)) {
4727
4736
  const parsedName = entityNameToDataTypeName(node.typeName);
4728
4737
  if (isSome2(parsedName)) {