148 references to WriteLine
Aspire.Hosting.CodeGeneration.Go (148)
AtsGoCodeGenerator.cs (148)
96WriteLine("// aspire.go - Capability-based Aspire SDK"); 97WriteLine("// GENERATED CODE - DO NOT EDIT"); 98WriteLine(); 99WriteLine("package aspire"); 100WriteLine(); 101WriteLine("import ("); 102WriteLine("\t\"fmt\""); 103WriteLine("\t\"os\""); 104WriteLine(")"); 105WriteLine(); 115WriteLine("// ============================================================================"); 116WriteLine("// Enums"); 117WriteLine("// ============================================================================"); 118WriteLine(); 128WriteLine($"// {enumName} represents {enumType.Name}."); 129WriteLine($"type {enumName} string"); 130WriteLine(); 131WriteLine("const ("); 135WriteLine($"\t{memberName} {enumName} = \"{member}\""); 137WriteLine(")"); 138WriteLine(); 149WriteLine("// ============================================================================"); 150WriteLine("// DTOs"); 151WriteLine("// ============================================================================"); 152WriteLine(); 163WriteLine($"// {dtoName} represents {dto.Name}."); 164WriteLine($"type {dtoName} struct {{"); 167WriteLine("}"); 168WriteLine(); 177WriteLine($"\t{propertyName} {propertyType} {jsonTag}"); 179WriteLine("}"); 180WriteLine(); 183WriteLine($"// ToMap converts the DTO to a map for JSON serialization."); 184WriteLine($"func (d *{dtoName}) ToMap() map[string]any {{"); 185WriteLine("\treturn map[string]any{"); 189WriteLine($"\t\t\"{property.Name}\": SerializeValue(d.{propertyName}),"); 191WriteLine("\t}"); 192WriteLine("}"); 193WriteLine(); 206WriteLine("// ============================================================================"); 207WriteLine("// Handle Wrappers"); 208WriteLine("// ============================================================================"); 209WriteLine(); 250WriteLine($"// {handleType.StructName} wraps a handle for {handleType.TypeId}."); 251WriteLine($"type {handleType.StructName} struct {{"); 252WriteLine($"\t{baseStruct}"); 255WriteLine($"\t{fieldName} {fieldType}"); 257WriteLine("}"); 258WriteLine(); 261WriteLine($"// New{handleType.StructName} creates a new {handleType.StructName}."); 262WriteLine($"func New{handleType.StructName}(handle *Handle, client *AspireClient) *{handleType.StructName} {{"); 263WriteLine($"\treturn &{handleType.StructName}{{"); 264WriteLine($"\t\t{baseStruct}: New{baseStruct}(handle, client),"); 265WriteLine("\t}"); 266WriteLine("}"); 267WriteLine(); 323WriteLine($"// {methodName} {char.ToLowerInvariant(capability.Description[0])}{capability.Description[1..]}"); 327WriteLine($"func (s *{structName}) {methodName}({paramList}) {returnSignature} {{"); 328WriteLine("\treqArgs := map[string]any{"); 329WriteLine($"\t\t\"{targetParamName}\": SerializeValue(s.Handle()),"); 330WriteLine("\t}"); 337WriteLine($"\tif {paramName} != nil {{"); 338WriteLine($"\t\treqArgs[\"{parameter.Name}\"] = RegisterCallback({paramName})"); 339WriteLine("\t}"); 345WriteLine($"\tif {paramName} != nil {{"); 346WriteLine($"\t\treqArgs[\"{parameter.Name}\"] = RegisterCancellation({paramName}, s.Client())"); 347WriteLine("\t}"); 356WriteLine($"\tif {paramName} != nil {{"); 357WriteLine($"\t\treqArgs[\"{parameter.Name}\"] = SerializeValue({paramName})"); 358WriteLine("\t}"); 362WriteLine($"\treqArgs[\"{parameter.Name}\"] = SerializeValue({paramName})"); 368WriteLine($"\tresult, err := s.Client().InvokeCapability(\"{capability.CapabilityId}\", reqArgs)"); 369WriteLine("\tif err != nil {"); 370WriteLine("\t\treturn nil, err"); 371WriteLine("\t}"); 375WriteLine($"\treturn result.({returnType}), nil"); 379WriteLine("\treturn result, nil"); 383WriteLine($"\treturn result.(*{returnType}), nil"); 388WriteLine($"\t_, err := s.Client().InvokeCapability(\"{capability.CapabilityId}\", reqArgs)"); 389WriteLine("\treturn err"); 392WriteLine("}"); 393WriteLine(); 431WriteLine($"// {methodName} {char.ToLowerInvariant(capability.Description[0])}{capability.Description[1..]}"); 436WriteLine($"func (s *{structName}) {methodName}() *{wrapperType}{typeArgs} {{"); 437WriteLine($"\tif s.{fieldName} == nil {{"); 438WriteLine($"\t\ts.{fieldName} = {factoryFunc}{typeArgs}(s.Handle(), s.Client(), \"{capability.CapabilityId}\")"); 439WriteLine("\t}"); 440WriteLine($"\treturn s.{fieldName}"); 441WriteLine("}"); 442WriteLine(); 449WriteLine("// ============================================================================"); 450WriteLine("// Handle wrapper registrations"); 451WriteLine("// ============================================================================"); 452WriteLine(); 453WriteLine("func init() {"); 457WriteLine($"\tRegisterHandleWrapper(\"{handleType.TypeId}\", func(h *Handle, c *AspireClient) any {{"); 458WriteLine($"\t\treturn New{handleType.StructName}(h, c)"); 459WriteLine("\t})"); 466WriteLine($"\tRegisterHandleWrapper(\"{typeId}\", func(h *Handle, c *AspireClient) any {{"); 467WriteLine($"\t\treturn &{wrapperType}{typeArgs}{{HandleWrapperBase: NewHandleWrapperBase(h, c)}}"); 468WriteLine("\t})"); 471WriteLine("}"); 472WriteLine(); 481WriteLine("// ============================================================================"); 482WriteLine("// Connection Helpers"); 483WriteLine("// ============================================================================"); 484WriteLine(); 485WriteLine("// Connect establishes a connection to the AppHost server."); 486WriteLine("func Connect() (*AspireClient, error) {"); 487WriteLine("\tsocketPath := os.Getenv(\"REMOTE_APP_HOST_SOCKET_PATH\")"); 488WriteLine("\tif socketPath == \"\" {"); 489WriteLine("\t\treturn nil, fmt.Errorf(\"REMOTE_APP_HOST_SOCKET_PATH environment variable not set. Run this application using `aspire run`\")"); 490WriteLine("\t}"); 491WriteLine("\tclient := NewAspireClient(socketPath)"); 492WriteLine("\tif err := client.Connect(); err != nil {"); 493WriteLine("\t\treturn nil, err"); 494WriteLine("\t}"); 495WriteLine("\tclient.OnDisconnect(func() { os.Exit(1) })"); 496WriteLine("\treturn client, nil"); 497WriteLine("}"); 498WriteLine(); 499WriteLine($"// CreateBuilder creates a new distributed application builder."); 500WriteLine($"func CreateBuilder(options *CreateBuilderOptions) (*{builderStructName}, error) {{"); 501WriteLine("\tclient, err := Connect()"); 502WriteLine("\tif err != nil {"); 503WriteLine("\t\treturn nil, err"); 504WriteLine("\t}"); 505WriteLine("\tresolvedOptions := make(map[string]any)"); 506WriteLine("\tif options != nil {"); 507WriteLine("\t\tfor k, v := range options.ToMap() {"); 508WriteLine("\t\t\tresolvedOptions[k] = v"); 509WriteLine("\t\t}"); 510WriteLine("\t}"); 511WriteLine("\tif _, ok := resolvedOptions[\"Args\"]; !ok {"); 512WriteLine("\t\tresolvedOptions[\"Args\"] = os.Args[1:]"); 513WriteLine("\t}"); 514WriteLine("\tif _, ok := resolvedOptions[\"ProjectDirectory\"]; !ok {"); 515WriteLine("\t\tif pwd, err := os.Getwd(); err == nil {"); 516WriteLine("\t\t\tresolvedOptions[\"ProjectDirectory\"] = pwd"); 517WriteLine("\t\t}"); 518WriteLine("\t}"); 519WriteLine("\tresult, err := client.InvokeCapability(\"Aspire.Hosting/createBuilderWithOptions\", map[string]any{\"options\": resolvedOptions})"); 520WriteLine("\tif err != nil {"); 521WriteLine("\t\treturn nil, err"); 522WriteLine("\t}"); 523WriteLine($"\treturn result.(*{builderStructName}), nil"); 524WriteLine("}"); 525WriteLine();