MCPcopy Index your code
hub / github.com/microsoft/typescript-go / handleTypeToTypeNode

Method handleTypeToTypeNode

internal/api/session.go:2035–2071  ·  view source on GitHub ↗

handleTypeToTypeNode converts a Type to a TypeNode AST and returns it as binary-encoded data.

(ctx context.Context, params *TypeToTypeNodeParams)

Source from the content-addressed store, hash-verified

2033
2034// handleTypeToTypeNode converts a Type to a TypeNode AST and returns it as binary-encoded data.
2035func (s *Session) handleTypeToTypeNode(ctx context.Context, params *TypeToTypeNodeParams) (any, error) {
2036 setup, err := s.setupChecker(ctx, params.Snapshot, params.Project)
2037 if err != nil {
2038 return nil, err
2039 }
2040 defer setup.done()
2041
2042 t, err := setup.resolveTypeHandle(params.Type)
2043 if err != nil {
2044 return nil, err
2045 }
2046
2047 var enclosingDeclaration *ast.Node
2048 if params.Location != "" {
2049 enclosingDeclaration, err = setup.sd.resolveNodeHandle(setup.program, params.Location)
2050 if err != nil {
2051 return nil, err
2052 }
2053 }
2054
2055 typeNode := setup.checker.TypeToTypeNode(t, enclosingDeclaration, nodebuilder.Flags(params.Flags), nil)
2056 if typeNode == nil {
2057 return nil, nil
2058 }
2059
2060 data, _, err := encoder.EncodeNode(typeNode.AsNode(), nil)
2061 if err != nil {
2062 return nil, fmt.Errorf("failed to encode type node: %w", err)
2063 }
2064
2065 if s.useBinaryResponses {
2066 return RawBinary(data), nil
2067 }
2068 return &SourceFileResponse{
2069 Data: base64.StdEncoding.EncodeToString(data),
2070 }, nil
2071}
2072
2073func (s *Session) handleSignatureToSignatureDeclaration(ctx context.Context, params *SignatureToSignatureDeclarationParams) (any, error) {
2074 setup, err := s.setupChecker(ctx, params.Snapshot, params.Project)

Callers 1

HandleRequestMethod · 0.95

Calls 10

setupCheckerMethod · 0.95
FlagsTypeAlias · 0.92
EncodeNodeFunction · 0.92
RawBinaryTypeAlias · 0.85
resolveNodeHandleMethod · 0.80
doneMethod · 0.65
AsNodeMethod · 0.65
ErrorfMethod · 0.65
resolveTypeHandleMethod · 0.45
TypeToTypeNodeMethod · 0.45

Tested by

no test coverage detected