148 references to WriteLine
Aspire.Hosting.CodeGeneration.Go (148)
AtsGoCodeGenerator.cs (148)
97WriteLine("// aspire.go - Capability-based Aspire SDK"); 98WriteLine("// GENERATED CODE - DO NOT EDIT"); 99WriteLine(); 100WriteLine("package aspire"); 101WriteLine(); 102WriteLine("import ("); 103WriteLine("\t\"fmt\""); 104WriteLine("\t\"os\""); 105WriteLine(")"); 106WriteLine(); 116WriteLine("// ============================================================================"); 117WriteLine("// Enums"); 118WriteLine("// ============================================================================"); 119WriteLine(); 129WriteLine($"// {enumName} represents {enumType.Name}."); 130WriteLine($"type {enumName} string"); 131WriteLine(); 132WriteLine("const ("); 136WriteLine($"\t{memberName} {enumName} = \"{member}\""); 138WriteLine(")"); 139WriteLine(); 150WriteLine("// ============================================================================"); 151WriteLine("// DTOs"); 152WriteLine("// ============================================================================"); 153WriteLine(); 164WriteLine($"// {dtoName} represents {dto.Name}."); 165WriteLine($"type {dtoName} struct {{"); 168WriteLine("}"); 169WriteLine(); 178WriteLine($"\t{propertyName} {propertyType} {jsonTag}"); 180WriteLine("}"); 181WriteLine(); 184WriteLine($"// ToMap converts the DTO to a map for JSON serialization."); 185WriteLine($"func (d *{dtoName}) ToMap() map[string]any {{"); 186WriteLine("\treturn map[string]any{"); 190WriteLine($"\t\t\"{property.Name}\": SerializeValue(d.{propertyName}),"); 192WriteLine("\t}"); 193WriteLine("}"); 194WriteLine(); 207WriteLine("// ============================================================================"); 208WriteLine("// Handle Wrappers"); 209WriteLine("// ============================================================================"); 210WriteLine(); 251WriteLine($"// {handleType.StructName} wraps a handle for {handleType.TypeId}."); 252WriteLine($"type {handleType.StructName} struct {{"); 253WriteLine($"\t{baseStruct}"); 256WriteLine($"\t{fieldName} {fieldType}"); 258WriteLine("}"); 259WriteLine(); 262WriteLine($"// New{handleType.StructName} creates a new {handleType.StructName}."); 263WriteLine($"func New{handleType.StructName}(handle *Handle, client *AspireClient) *{handleType.StructName} {{"); 264WriteLine($"\treturn &{handleType.StructName}{{"); 265WriteLine($"\t\t{baseStruct}: New{baseStruct}(handle, client),"); 266WriteLine("\t}"); 267WriteLine("}"); 268WriteLine(); 324WriteLine($"// {methodName} {char.ToLowerInvariant(capability.Description[0])}{capability.Description[1..]}"); 328WriteLine($"func (s *{structName}) {methodName}({paramList}) {returnSignature} {{"); 329WriteLine("\treqArgs := map[string]any{"); 330WriteLine($"\t\t\"{targetParamName}\": SerializeValue(s.Handle()),"); 331WriteLine("\t}"); 338WriteLine($"\tif {paramName} != nil {{"); 339WriteLine($"\t\treqArgs[\"{parameter.Name}\"] = RegisterCallback({paramName})"); 340WriteLine("\t}"); 346WriteLine($"\tif {paramName} != nil {{"); 347WriteLine($"\t\treqArgs[\"{parameter.Name}\"] = RegisterCancellation({paramName}, s.Client())"); 348WriteLine("\t}"); 360WriteLine($"\tif {paramName} != nil {{"); 361WriteLine($"\t\treqArgs[\"{parameter.Name}\"] = SerializeValue({paramName})"); 362WriteLine("\t}"); 366WriteLine($"\treqArgs[\"{parameter.Name}\"] = SerializeValue({paramName})"); 372WriteLine($"\tresult, err := s.Client().InvokeCapability(\"{capability.CapabilityId}\", reqArgs)"); 373WriteLine("\tif err != nil {"); 374WriteLine("\t\treturn nil, err"); 375WriteLine("\t}"); 379WriteLine($"\treturn result.({returnType}), nil"); 383WriteLine("\treturn result, nil"); 387WriteLine($"\treturn result.(*{returnType}), nil"); 392WriteLine($"\t_, err := s.Client().InvokeCapability(\"{capability.CapabilityId}\", reqArgs)"); 393WriteLine("\treturn err"); 396WriteLine("}"); 397WriteLine(); 435WriteLine($"// {methodName} {char.ToLowerInvariant(capability.Description[0])}{capability.Description[1..]}"); 440WriteLine($"func (s *{structName}) {methodName}() *{wrapperType}{typeArgs} {{"); 441WriteLine($"\tif s.{fieldName} == nil {{"); 442WriteLine($"\t\ts.{fieldName} = {factoryFunc}{typeArgs}(s.Handle(), s.Client(), \"{capability.CapabilityId}\")"); 443WriteLine("\t}"); 444WriteLine($"\treturn s.{fieldName}"); 445WriteLine("}"); 446WriteLine(); 453WriteLine("// ============================================================================"); 454WriteLine("// Handle wrapper registrations"); 455WriteLine("// ============================================================================"); 456WriteLine(); 457WriteLine("func init() {"); 461WriteLine($"\tRegisterHandleWrapper(\"{handleType.TypeId}\", func(h *Handle, c *AspireClient) any {{"); 462WriteLine($"\t\treturn New{handleType.StructName}(h, c)"); 463WriteLine("\t})"); 470WriteLine($"\tRegisterHandleWrapper(\"{typeId}\", func(h *Handle, c *AspireClient) any {{"); 471WriteLine($"\t\treturn &{wrapperType}{typeArgs}{{HandleWrapperBase: NewHandleWrapperBase(h, c)}}"); 472WriteLine("\t})"); 475WriteLine("}"); 476WriteLine(); 485WriteLine("// ============================================================================"); 486WriteLine("// Connection Helpers"); 487WriteLine("// ============================================================================"); 488WriteLine(); 489WriteLine("// Connect establishes a connection to the AppHost server."); 490WriteLine("func Connect() (*AspireClient, error) {"); 491WriteLine("\tsocketPath := os.Getenv(\"REMOTE_APP_HOST_SOCKET_PATH\")"); 492WriteLine("\tif socketPath == \"\" {"); 493WriteLine("\t\treturn nil, fmt.Errorf(\"REMOTE_APP_HOST_SOCKET_PATH environment variable not set. Run this application using `aspire run`\")"); 494WriteLine("\t}"); 495WriteLine("\tclient := NewAspireClient(socketPath)"); 496WriteLine("\tif err := client.Connect(); err != nil {"); 497WriteLine("\t\treturn nil, err"); 498WriteLine("\t}"); 499WriteLine("\tclient.OnDisconnect(func() { os.Exit(1) })"); 500WriteLine("\treturn client, nil"); 501WriteLine("}"); 502WriteLine(); 503WriteLine($"// CreateBuilder creates a new distributed application builder."); 504WriteLine($"func CreateBuilder(options *CreateBuilderOptions) (*{builderStructName}, error) {{"); 505WriteLine("\tclient, err := Connect()"); 506WriteLine("\tif err != nil {"); 507WriteLine("\t\treturn nil, err"); 508WriteLine("\t}"); 509WriteLine("\tresolvedOptions := make(map[string]any)"); 510WriteLine("\tif options != nil {"); 511WriteLine("\t\tfor k, v := range options.ToMap() {"); 512WriteLine("\t\t\tresolvedOptions[k] = v"); 513WriteLine("\t\t}"); 514WriteLine("\t}"); 515WriteLine("\tif _, ok := resolvedOptions[\"Args\"]; !ok {"); 516WriteLine("\t\tresolvedOptions[\"Args\"] = os.Args[1:]"); 517WriteLine("\t}"); 518WriteLine("\tif _, ok := resolvedOptions[\"ProjectDirectory\"]; !ok {"); 519WriteLine("\t\tif pwd, err := os.Getwd(); err == nil {"); 520WriteLine("\t\t\tresolvedOptions[\"ProjectDirectory\"] = pwd"); 521WriteLine("\t\t}"); 522WriteLine("\t}"); 523WriteLine("\tresult, err := client.InvokeCapability(\"Aspire.Hosting/createBuilderWithOptions\", map[string]any{\"options\": resolvedOptions})"); 524WriteLine("\tif err != nil {"); 525WriteLine("\t\treturn nil, err"); 526WriteLine("\t}"); 527WriteLine($"\treturn result.(*{builderStructName}), nil"); 528WriteLine("}"); 529WriteLine();