528 references to WriteLine
Aspire.Hosting.CodeGeneration.TypeScript (528)
AtsTypeScriptCodeGenerator.cs (528)
189WriteLine($"{indent}/** {lines[0]} */"); 193WriteLine($"{indent}/**"); 196WriteLine(line.Length == 0 ? $"{indent} *" : $"{indent} * {line}"); 198WriteLine($"{indent} */"); 446WriteLine(""" 497WriteLine(); 575WriteLine("// ============================================================================"); 576WriteLine("// Handle Type Aliases (Internal - not exported to users)"); 577WriteLine("// ============================================================================"); 578WriteLine(); 586WriteLine($"type {handleName} = Handle<'{typeId}'>;"); 587WriteLine(); 610WriteLine("// ============================================================================"); 611WriteLine("// Enum Types"); 612WriteLine("// ============================================================================"); 613WriteLine(); 618WriteLine($"export enum {enumType.Name} {{"); 628WriteLine($" {value.Name} = \"{value.Name}\","); 631WriteLine("}"); 632WriteLine(); 650WriteLine("// ============================================================================"); 651WriteLine("// DTO Interfaces"); 652WriteLine("// ============================================================================"); 653WriteLine(); 660WriteLine($"export interface {interfaceName} {{"); 671WriteLine($" {propName}?: {tsType};"); 678WriteLine($" /** {clientOnly.Summary} */"); 679WriteLine($" {clientOnly.Name}?: {clientOnly.Type};"); 682WriteLine("}"); 683WriteLine(); 696WriteLine("// ============================================================================"); 697WriteLine("// Exported Values"); 698WriteLine("// ============================================================================"); 699WriteLine(); 703WriteLine(exportedNamespace.Content); 704WriteLine(); 718WriteLine("// ============================================================================"); 719WriteLine("// Options Interfaces"); 720WriteLine("// ============================================================================"); 721WriteLine(); 725WriteLine($"export interface {interfaceName} {{"); 730WriteLine($" {param.Name}?: {tsType};"); 732WriteLine("}"); 733WriteLine(); 741WriteLine($" {propertyName}(): {returnType};"); 759WriteLine($" readonly {propertyName}: AspireDict<{keyType}, {valueType}>;"); 767WriteLine($" readonly {propertyName}: AspireList<{elementType}>;"); 773WriteLine($" {propertyName}: {{"); 779WriteLine($" get: () => {promiseInterfaceName};"); 784WriteLine($" get: () => Promise<{returnTypeName}>;"); 794WriteLine($" set: (value: {valueType}) => Promise<void>;"); 798WriteLine(" };"); 805WriteLine("// ============================================================================"); 806WriteLine($"// {interfaceName}"); 807WriteLine("// ============================================================================"); 808WriteLine(); 810WriteLine($"export interface {interfaceName} {{"); 811WriteLine(" toJSON(): MarshalledHandle;"); 836WriteLine($" {capability.MethodName}({signature.ParameterList}): {promiseInterfaceName};"); 841WriteLine($" {capability.MethodName}({signature.ParameterList}): Promise<{returnType}>;"); 846WriteLine($" {capability.MethodName}({signature.ParameterList}): {_projector.GetBuilderPromiseInterfaceForMethod(builder, capability)};"); 850WriteLine("}"); 851WriteLine(); 873WriteLine($"export interface {promiseInterfaceName} extends PromiseLike<{interfaceName}> {{"); 890WriteLine($" {capability.MethodName}({signature.ParameterList}): {returnPromiseInterfaceName};"); 895WriteLine($" {capability.MethodName}({signature.ParameterList}): Promise<{returnType}>;"); 900WriteLine($" {capability.MethodName}({signature.ParameterList}): {_projector.GetBuilderPromiseInterfaceForMethod(builder, capability)};"); 904WriteLine("}"); 905WriteLine(); 916WriteLine($" {signature.MethodName}({signature.ParameterList}): {_projector.GetPublicPromiseInterfaceName(capability.ReturnType.TypeId)};"); 920WriteLine($" {signature.MethodName}({signature.ParameterList}): {TypeScriptApiProjector.GetPromiseInterfaceName(className)};"); 925WriteLine($" {signature.MethodName}({signature.ParameterList}): Promise<{returnType}>;"); 934WriteLine("// ============================================================================"); 935WriteLine($"// {interfaceName}"); 936WriteLine("// ============================================================================"); 937WriteLine(); 939WriteLine($"export interface {interfaceName} {{"); 940WriteLine(" toJSON(): MarshalledHandle;"); 963WriteLine("}"); 964WriteLine(); 972WriteLine($"export interface {promiseInterfaceName} extends PromiseLike<{interfaceName}> {{"); 981WriteLine("}"); 982WriteLine(); 992WriteLine("// ============================================================================"); 993WriteLine($"// {implementationClassName}"); 994WriteLine("// ============================================================================"); 995WriteLine(); 1001WriteLine($"class {implementationClassName} extends ResourceBuilderBase<{handleType}> implements {builder.BuilderClassName} {{"); 1004WriteLine($" constructor(handle: {handleType}, client: AspireClientRpc) {{"); 1005WriteLine($" super(handle, client);"); 1006WriteLine(" }"); 1007WriteLine(); 1031WriteLine("}"); 1032WriteLine(); 1130WriteLine($"): {returnPromiseInterfaceName} {{"); 1131WriteLine(" const promise = (async () => {"); 1136WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 1148WriteLine($" const handle = await this._client.invokeCapability<{returnHandleType}>("); 1149WriteLine($" '{capability.CapabilityId}',"); 1150WriteLine(" rpcArgs"); 1151WriteLine(" );"); 1152WriteLine($" return new {returnImplementationClassNameForWrapper}(handle, this._client);"); 1153WriteLine(" })();"); 1154WriteLine($" return new {returnPromiseImplementationClassName}(promise, this._client);"); 1155WriteLine(" }"); 1156WriteLine(); 1166WriteLine($"): Promise<{returnType}> {{"); 1172WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 1190WriteLine(" const result = await this._client.invokeCapability<string | null>("); 1191WriteLine($" '{capability.CapabilityId}',"); 1192WriteLine(" rpcArgs"); 1193WriteLine(" );"); 1194WriteLine(" return CancellationToken.fromValue(result);"); 1198WriteLine($" return await this._client.invokeCapability<{returnType}>("); 1199WriteLine($" '{capability.CapabilityId}',"); 1200WriteLine($" rpcArgs"); 1201WriteLine(" );"); 1203WriteLine(" }"); 1204WriteLine(); 1209WriteLine($" /** @internal */"); 1213WriteLine(); 1230WriteLine($" const result = await this._client.invokeCapability<{returnHandle}>("); 1231WriteLine($" '{capability.CapabilityId}',"); 1232WriteLine($" rpcArgs"); 1233WriteLine(" );"); 1234WriteLine($" return new {returnImplementationClassName}(result, this._client);"); 1238WriteLine($" await this._client.invokeCapability<void>("); 1239WriteLine($" '{capability.CapabilityId}',"); 1240WriteLine($" rpcArgs"); 1241WriteLine(" );"); 1242WriteLine($" return this;"); 1244WriteLine(" }"); 1245WriteLine(); 1254WriteLine(); 1260WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 1273WriteLine($" const flushAndBuild = async () => {{ await this._client.flushPendingPromises(); return {internalCall}; }};"); 1277WriteLine($" return new {promiseImplementationClass}(flushAndBuild(), this._client, false);"); 1281WriteLine($" return new {promiseImplementationClass}({internalCall}, this._client);"); 1283WriteLine(" }"); 1284WriteLine(); 1311WriteLine($"{indent}{param.Name} = isPromiseLike({param.Name}) ? await {param.Name} : {param.Name};"); 1330WriteLine($"{indent}{paramName} = isPromiseLike({paramName}) ? await {paramName} : {paramName};"); 1372WriteLine($"{indent}const rpcArgs: Record<string, unknown> = {{ {string.Join(", ", requiredArgs)} }};"); 1379WriteLine($"{indent}if ({localParameterName} !== undefined) rpcArgs.{param.Name} = {rpcExpression};"); 1405WriteLine($"{indent}const rpcArgs: Record<string, unknown> = {{ {string.Join(", ", requiredArgs)} }};"); 1412WriteLine($"{indent}if ({localParameterName} !== undefined) rpcArgs.{param.Name} = {rpcExpression};"); 1439WriteLine($"{indent}const {dtoRpcLocalName} = {localParameterName} === undefined || {localParameterName} === null ? {localParameterName} : {{ ...{localParameterName} }};"); 1440WriteLine($"{indent}if ({dtoRpcLocalName} !== undefined && {dtoRpcLocalName} !== null) {{"); 1442WriteLine($"{indent}}}"); 1446WriteLine($"{indent}const {dtoRpcLocalName} = {localParameterName} === null ? {localParameterName} : {{ ...{localParameterName} }};"); 1447WriteLine($"{indent}if ({dtoRpcLocalName} !== null) {{"); 1449WriteLine($"{indent}}}"); 1462WriteLine($"{indent}const {dtoDataLocalName} = {dtoRpcLocalName} as Record<string, unknown>;"); 1470WriteLine($"{indent}const {callbackLocalName} = {dtoRpcLocalName}.{propertyName};"); 1471WriteLine($"{indent}if ({callbackLocalName} !== undefined) {{"); 1473WriteLine($"{indent} {dtoDataLocalName}[\"{propertyName}\"] = {callbackLocalName}Id;"); 1474WriteLine($"{indent}}}"); 1506WriteLine($"{indent}const {dtoPropertyLocalName} = {dtoRpcLocalName}.{propertyName};"); 1507WriteLine($"{indent}if ({dtoPropertyLocalName} !== undefined && {dtoPropertyLocalName} !== null) {{"); 1508WriteLine($"{indent} const {nestedDtoRpcLocalName} = {{ ...{dtoPropertyLocalName} }};"); 1510WriteLine($"{indent} {dtoDataLocalName}[\"{propertyName}\"] = {nestedDtoRpcLocalName};"); 1511WriteLine($"{indent}}}"); 1572WriteLine($"/**"); 1573WriteLine($" * Thenable wrapper for {builder.BuilderClassName} that enables fluent chaining."); 1574WriteLine($" * @example"); 1575WriteLine($" * await builder.addSomething().withX().withY();"); 1576WriteLine($" */"); 1577WriteLine($"class {promiseImplementationClass} implements {promiseClass} {{"); 1578WriteLine($" constructor(private _promise: Promise<{builder.BuilderClassName}>, private _client: AspireClientRpc, track = true) {{"); 1579WriteLine($" if (track) {{ _client.trackPromise(_promise); }}"); 1580WriteLine($" }}"); 1581WriteLine(); 1584WriteLine($" then<TResult1 = {builder.BuilderClassName}, TResult2 = never>("); 1585WriteLine($" onfulfilled?: ((value: {builder.BuilderClassName}) => TResult1 | PromiseLike<TResult1>) | null,"); 1586WriteLine(" onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null"); 1587WriteLine(" ): PromiseLike<TResult1 | TResult2> {"); 1588WriteLine(" return this._promise.then(onfulfilled, onrejected);"); 1589WriteLine(" }"); 1590WriteLine(); 1595WriteLine($" {prop.PropertyName}(): {returnType} {{"); 1598WriteLine($" return new {promiseImplementationClassName}(this._promise.then(obj => obj.{prop.PropertyName}()), this._client, false);"); 1602WriteLine($" return this._promise.then(obj => obj.{prop.PropertyName}());"); 1604WriteLine(" }"); 1605WriteLine(); 1638WriteLine($"): {returnPromiseInterfaceName} {{"); 1641WriteLine(")), this._client);"); 1642WriteLine(" }"); 1643WriteLine(); 1651WriteLine($"): Promise<{returnType}> {{"); 1654WriteLine("));"); 1655WriteLine(" }"); 1676WriteLine(); 1680WriteLine($")), this._client);"); 1681WriteLine(" }"); 1683WriteLine(); 1686WriteLine("}"); 1687WriteLine(); 1697WriteLine("// ============================================================================"); 1698WriteLine("// Entry Point Functions"); 1699WriteLine("// ============================================================================"); 1700WriteLine(); 1757WriteLine($"): {signature.ReturnType} {{"); 1759WriteLine($" const promise = (async () => {{"); 1765WriteLine($" {param.Name} = isPromiseLike({param.Name}) ? await {param.Name} : {param.Name};"); 1772WriteLine($" const rpcArgs: Record<string, unknown> = {{ {string.Join(", ", requiredArgs)} }};"); 1775WriteLine($" if ({param.Name} !== undefined) rpcArgs.{param.Name} = {GetRpcArgumentExpressionForParam(param, param.Name, useRegisteredCallback: false)};"); 1777WriteLine($" const handle = await client.invokeCapability<{handleType}>("); 1778WriteLine($" '{capability.CapabilityId}',"); 1779WriteLine(" rpcArgs"); 1780WriteLine(" );"); 1781WriteLine($" return new {returnWrapperImplementationClass}(handle, client);"); 1782WriteLine($" }})();"); 1783WriteLine($" return new {returnPromiseImplementationClass}(promise, client);"); 1784WriteLine("}"); 1795WriteLine($"): {signature.ReturnType} {{"); 1801WriteLine($" {param.Name} = isPromiseLike({param.Name}) ? await {param.Name} : {param.Name};"); 1808WriteLine($" const rpcArgs: Record<string, unknown> = {{ {string.Join(", ", requiredArgs)} }};"); 1811WriteLine($" if ({param.Name} !== undefined) rpcArgs.{param.Name} = {GetRpcArgumentExpressionForParam(param, param.Name, useRegisteredCallback: false)};"); 1815WriteLine($" await client.invokeCapability<void>("); 1819WriteLine(" const result = await client.invokeCapability<string | null>("); 1820WriteLine($" '{capability.CapabilityId}',"); 1821WriteLine(" rpcArgs"); 1822WriteLine(" );"); 1823WriteLine(" return CancellationToken.fromValue(result);"); 1824WriteLine("}"); 1825WriteLine(); 1830WriteLine($" return await client.invokeCapability<{returnType}>("); 1832WriteLine($" '{capability.CapabilityId}',"); 1833WriteLine(" rpcArgs"); 1834WriteLine(" );"); 1835WriteLine("}"); 1837WriteLine(); 1864WriteLine($"{indent}const {callbackName}Id = {callbackName} ? registerCallback(async ({paramSignature}) => {{"); 1868WriteLine($"{indent}const {callbackName}Id = registerCallback(async ({paramSignature}) => {{"); 1877WriteLine(indent + "}) : undefined;"); 1881WriteLine(indent + "});"); 1901WriteLine($"{bodyIndent}{returnPrefix}await {callbackName}();"); 1909WriteLine($"{bodyIndent}{returnPrefix}await {callbackName}({cbParam.Name});"); 1923WriteLine($"{bodyIndent}{returnPrefix}await {callbackName}({string.Join(", ", callArgs)});"); 1934WriteLine($"{indent}const {callbackParameter.Name} = CancellationToken.fromValue({callbackArgName});"); 1942WriteLine($"{indent}const {callbackParameter.Name}Handle = wrapIfHandle({callbackArgName}) as {handleType};"); 1943WriteLine($"{indent}const {callbackParameter.Name} = new AspireDict<{keyType}, {valueType}>({callbackParameter.Name}Handle, {clientExpression}, '{cbTypeId}');"); 1948WriteLine($"{indent}const {callbackParameter.Name}Handle = wrapIfHandle({callbackArgName}) as {handleType};"); 1949WriteLine($"{indent}const {callbackParameter.Name} = new {TypeScriptApiProjector.GetImplementationClassName(wrapperClassName)}({callbackParameter.Name}Handle, {clientExpression});"); 1953WriteLine($"{indent}const {callbackParameter.Name} = wrapIfHandle({callbackArgName}) as {tsType};"); 1961WriteLine($$""" 2037WriteLine(); 2042WriteLine(""" 2100WriteLine(); 2101WriteLine("// ============================================================================"); 2102WriteLine("// Handle Wrapper Registrations"); 2103WriteLine("// ============================================================================"); 2104WriteLine(); 2105WriteLine("// Register wrapper factories for typed handle wrapping in callbacks"); 2112WriteLine($"registerHandleWrapper('{typeClass.TypeId}', (handle, client) => new {TypeScriptApiProjector.GetImplementationClassName(className)}(handle as {handleType}, client));"); 2120WriteLine($"registerHandleWrapper('{builder.TypeId}', (handle, client) => new {TypeScriptApiProjector.GetImplementationClassName(className)}(handle as {handleType}, client));"); 2132WriteLine($"registerHandleWrapper('{aliasTypeId}', (handle, client) => new {TypeScriptApiProjector.GetImplementationClassName(className)}(handle as {handleType}, client));"); 2135WriteLine(); 2151WriteLine("// ============================================================================"); 2152WriteLine($"// {implementationClassName}"); 2153WriteLine("// ============================================================================"); 2154WriteLine(); 2165WriteLine($"class {implementationClassName} implements {className} {{"); 2166WriteLine($" constructor(private _handle: {handleType}, private _client: AspireClientRpc) {{}}"); 2167WriteLine(); 2168WriteLine($" /** Serialize for JSON-RPC transport */"); 2169WriteLine($" toJSON(): MarshalledHandle {{ return this._handle.toJSON(); }}"); 2170WriteLine(); 2205WriteLine("}"); 2206WriteLine(); 2277WriteLine($" {propertyName} = {{"); 2282WriteLine($" get: async (): Promise<{returnType}> => {{"); 2285WriteLine(" const result = await this._client.invokeCapability<string | null>("); 2286WriteLine($" '{getter.CapabilityId}',"); 2287WriteLine(" { context: this._handle }"); 2288WriteLine(" );"); 2289WriteLine(" return CancellationToken.fromValue(result);"); 2293WriteLine($" return await this._client.invokeCapability<{returnType}>("); 2294WriteLine($" '{getter.CapabilityId}',"); 2295WriteLine($" {{ context: this._handle }}"); 2296WriteLine(" );"); 2298WriteLine(" },"); 2308WriteLine($" set: async (value: {valueType}): Promise<void> => {{"); 2310WriteLine($" await this._client.invokeCapability<void>("); 2311WriteLine($" '{setter.CapabilityId}',"); 2312WriteLine($" {{ context: this._handle, {GetRpcArgumentEntry("value", valueParam.Type)} }}"); 2313WriteLine(" );"); 2314WriteLine(" }"); 2318WriteLine(" };"); 2319WriteLine(); 2350WriteLine($" {propertyName}(): {promiseInterfaceName} {{"); 2351WriteLine($" return new {promiseImplementationClassName}(this._client.invokeCapability<{collectionType}>("); 2352WriteLine($" '{getter.CapabilityId}',"); 2353WriteLine(" { context: this._handle }"); 2354WriteLine(" ), this._client, false);"); 2355WriteLine(" }"); 2356WriteLine(); 2362WriteLine($" async {propertyName}(): Promise<{returnType}> {{"); 2365WriteLine(" const result = await this._client.invokeCapability<string | null>("); 2366WriteLine($" '{getter.CapabilityId}',"); 2367WriteLine(" { context: this._handle }"); 2368WriteLine(" );"); 2369WriteLine(" return CancellationToken.fromValue(result);"); 2373WriteLine($" return await this._client.invokeCapability<{returnType}>("); 2374WriteLine($" '{getter.CapabilityId}',"); 2375WriteLine(" { context: this._handle }"); 2376WriteLine(" );"); 2378WriteLine(" }"); 2379WriteLine(); 2389WriteLine($" {propertyName}(): {promiseInterfaceName} {{"); 2390WriteLine(" const promise = (async () => {"); 2391WriteLine($" const handle = await this._client.invokeCapability<{handleType}>("); 2392WriteLine($" '{getter.CapabilityId}',"); 2393WriteLine(" { context: this._handle }"); 2394WriteLine(" );"); 2395WriteLine($" return new {wrapperImplementationClassName}(handle, this._client);"); 2396WriteLine(" })();"); 2397WriteLine($" return new {promiseImplementationClassName}(promise, this._client, false);"); 2398WriteLine(" }"); 2399WriteLine(); 2403WriteLine($" async {propertyName}(): Promise<{wrapperClassName}> {{"); 2404WriteLine($" const handle = await this._client.invokeCapability<{handleType}>("); 2405WriteLine($" '{getter.CapabilityId}',"); 2406WriteLine(" { context: this._handle }"); 2407WriteLine(" );"); 2408WriteLine($" return new {wrapperImplementationClassName}(handle, this._client);"); 2409WriteLine(" }"); 2410WriteLine(); 2441WriteLine($" {propertyName} = {{"); 2444WriteLine($" get: (): {promiseInterfaceName} => {{"); 2445WriteLine(" const promise = (async () => {"); 2446WriteLine($" const handle = await this._client.invokeCapability<{handleType}>("); 2447WriteLine($" '{getter.CapabilityId}',"); 2448WriteLine($" {{ context: this._handle }}"); 2449WriteLine(" );"); 2450WriteLine($" return new {wrapperImplementationClassName}(handle, this._client);"); 2451WriteLine(" })();"); 2452WriteLine($" return new {promiseImplementationClassName}(promise, this._client, false);"); 2453WriteLine(" },"); 2457WriteLine($" get: async (): Promise<{wrapperClassName}> => {{"); 2458WriteLine($" const handle = await this._client.invokeCapability<{handleType}>("); 2459WriteLine($" '{getter.CapabilityId}',"); 2460WriteLine($" {{ context: this._handle }}"); 2461WriteLine(" );"); 2462WriteLine($" return new {wrapperImplementationClassName}(handle, this._client);"); 2463WriteLine(" },"); 2472WriteLine($" set: async (value: {valueType}): Promise<void> => {{"); 2474WriteLine($" await this._client.invokeCapability<void>("); 2475WriteLine($" '{setter.CapabilityId}',"); 2476WriteLine($" {{ context: this._handle, {GetRpcArgumentEntry("value", valueParam.Type)} }}"); 2477WriteLine(" );"); 2478WriteLine(" }"); 2482WriteLine(" };"); 2483WriteLine(); 2510WriteLine($" private _{propertyName}?: AspireDict<{keyType}, {valueType}>;"); 2511WriteLine($" async {propertyName}(): Promise<AspireDict<{keyType}, {valueType}>> {{"); 2512WriteLine($" if (!this._{propertyName}) {{"); 2513WriteLine($" this._{propertyName} = new AspireDict<{keyType}, {valueType}>("); 2514WriteLine($" this._handle,"); 2515WriteLine($" this._client,"); 2516WriteLine($" {typeId},"); 2517WriteLine($" {getterCapabilityId}"); 2518WriteLine(" );"); 2519WriteLine(" }"); 2520WriteLine($" return this._{propertyName};"); 2521WriteLine(" }"); 2522WriteLine(); 2543WriteLine($" private _{propertyName}?: AspireDict<{keyType}, {valueType}>;"); 2544WriteLine($" get {propertyName}(): AspireDict<{keyType}, {valueType}> {{"); 2545WriteLine($" if (!this._{propertyName}) {{"); 2546WriteLine($" this._{propertyName} = new AspireDict<{keyType}, {valueType}>("); 2547WriteLine($" this._handle,"); 2548WriteLine($" this._client,"); 2549WriteLine($" {typeId},"); 2550WriteLine($" {getterCapabilityId}"); 2551WriteLine(" );"); 2552WriteLine(" }"); 2553WriteLine($" return this._{propertyName};"); 2554WriteLine(" }"); 2555WriteLine(); 2575WriteLine($" private _{propertyName}?: AspireList<{elementType}>;"); 2576WriteLine($" async {propertyName}(): Promise<AspireList<{elementType}>> {{"); 2577WriteLine($" if (!this._{propertyName}) {{"); 2578WriteLine($" this._{propertyName} = new AspireList<{elementType}>("); 2579WriteLine($" this._handle,"); 2580WriteLine($" this._client,"); 2581WriteLine($" {typeId},"); 2582WriteLine($" {getterCapabilityId}"); 2583WriteLine(" );"); 2584WriteLine(" }"); 2585WriteLine($" return this._{propertyName};"); 2586WriteLine(" }"); 2587WriteLine(); 2602WriteLine($" private _{propertyName}?: AspireList<{elementType}>;"); 2603WriteLine($" get {propertyName}(): AspireList<{elementType}> {{"); 2604WriteLine($" if (!this._{propertyName}) {{"); 2605WriteLine($" this._{propertyName} = new AspireList<{elementType}>("); 2606WriteLine($" this._handle,"); 2607WriteLine($" this._client,"); 2608WriteLine($" {typeId},"); 2609WriteLine($" {getterCapabilityId}"); 2610WriteLine(" );"); 2611WriteLine(" }"); 2612WriteLine($" return this._{propertyName};"); 2613WriteLine(" }"); 2614WriteLine(); 2669WriteLine($"): {returnPromiseInterfaceName} {{"); 2670WriteLine(" const promise = (async () => {"); 2675WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 2680WriteLine($" const handle = await this._client.invokeCapability<{returnHandleType}>("); 2681WriteLine($" '{method.CapabilityId}',"); 2682WriteLine(" rpcArgs"); 2683WriteLine(" );"); 2684WriteLine($" return new {returnImplementationClassName}(handle, this._client);"); 2685WriteLine(" })();"); 2686WriteLine($" return new {returnPromiseImplementationClassName}(promise, this._client);"); 2687WriteLine(" }"); 2688WriteLine(); 2696WriteLine($"): Promise<{returnType}> {{"); 2702WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 2710WriteLine($" await this._client.invokeCapability<void>("); 2714WriteLine(" const result = await this._client.invokeCapability<string | null>("); 2715WriteLine($" '{method.CapabilityId}',"); 2716WriteLine(" rpcArgs"); 2717WriteLine(" );"); 2718WriteLine(" return CancellationToken.fromValue(result);"); 2719WriteLine(" }"); 2720WriteLine(); 2725WriteLine($" return await this._client.invokeCapability<{returnType}>("); 2727WriteLine($" '{method.CapabilityId}',"); 2728WriteLine($" rpcArgs"); 2729WriteLine(" );"); 2730WriteLine(" }"); 2731WriteLine(); 2782WriteLine($"): {returnPromiseInterfaceName} {{"); 2783WriteLine(" const promise = (async () => {"); 2788WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 2793WriteLine($" const handle = await this._client.invokeCapability<{returnHandleType}>("); 2794WriteLine($" '{capability.CapabilityId}',"); 2795WriteLine(" rpcArgs"); 2796WriteLine(" );"); 2797WriteLine($" return new {returnImplementationClassName}(handle, this._client);"); 2798WriteLine(" })();"); 2799WriteLine($" return new {returnPromiseImplementationClassName}(promise, this._client);"); 2800WriteLine(" }"); 2801WriteLine(); 2809WriteLine($"): Promise<{returnType}> {{"); 2815WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 2823WriteLine($" await this._client.invokeCapability<void>("); 2827WriteLine($" return await this._client.invokeCapability<{returnType}>("); 2829WriteLine($" '{capability.CapabilityId}',"); 2830WriteLine($" rpcArgs"); 2831WriteLine(" );"); 2832WriteLine(" }"); 2833WriteLine(); 2912WriteLine($" /** @internal */"); 2915WriteLine($"): Promise<{returnWrapperClass}> {{"); 2930WriteLine($" const result = await this._client.invokeCapability<{returnHandleType}>("); 2931WriteLine($" '{capability.CapabilityId}',"); 2932WriteLine($" rpcArgs"); 2933WriteLine(" );"); 2934WriteLine($" return new {returnWrapperImplementationClass}(result, this._client);"); 2935WriteLine(" }"); 2936WriteLine(); 2942WriteLine($"): {returnPromiseWrapper} {{"); 2948WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 2957WriteLine($" const flushAndBuild = async () => {{ await this._client.flushPendingPromises(); return {internalCall}; }};"); 2958WriteLine($" return new {returnPromiseImplementationClass}(flushAndBuild(), this._client, false);"); 2962WriteLine($" return new {returnPromiseImplementationClass}({internalCall}, this._client);"); 2964WriteLine(" }"); 2970WriteLine($" /** @internal */"); 2973WriteLine($"): Promise<{className}> {{"); 2988WriteLine($" await this._client.invokeCapability<void>("); 2989WriteLine($" '{capability.CapabilityId}',"); 2990WriteLine($" rpcArgs"); 2991WriteLine(" );"); 2992WriteLine($" return this;"); 2993WriteLine(" }"); 2994WriteLine(); 3000WriteLine($"): {promiseClass} {{"); 3006WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 3011WriteLine("), this._client);"); 3012WriteLine(" }"); 3020WriteLine($"): Promise<{returnType}> {{"); 3026WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 3044WriteLine(" const result = await this._client.invokeCapability<string | null>("); 3045WriteLine($" '{capability.CapabilityId}',"); 3046WriteLine(" rpcArgs"); 3047WriteLine(" );"); 3048WriteLine(" return CancellationToken.fromValue(result);"); 3052WriteLine($" return await this._client.invokeCapability<{returnType}>("); 3053WriteLine($" '{capability.CapabilityId}',"); 3054WriteLine($" rpcArgs"); 3055WriteLine(" );"); 3057WriteLine(" }"); 3059WriteLine(); 3090WriteLine($"/**"); 3091WriteLine($" * Thenable wrapper for {className} that enables fluent chaining."); 3092WriteLine($" */"); 3093WriteLine($"class {promiseImplementationClass} implements {promiseClass} {{"); 3094WriteLine($" constructor(private _promise: Promise<{className}>, private _client: AspireClientRpc, track = true) {{"); 3095WriteLine($" if (track) {{ _client.trackPromise(_promise); }}"); 3096WriteLine($" }}"); 3097WriteLine(); 3100WriteLine($" then<TResult1 = {className}, TResult2 = never>("); 3101WriteLine($" onfulfilled?: ((value: {className}) => TResult1 | PromiseLike<TResult1>) | null,"); 3102WriteLine(" onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null"); 3103WriteLine(" ): PromiseLike<TResult1 | TResult2> {"); 3104WriteLine(" return this._promise.then(onfulfilled, onrejected);"); 3105WriteLine(" }"); 3106WriteLine(); 3117WriteLine($" {prop.PropertyName}(): {returnType} {{"); 3120WriteLine($" return new {propertyPromiseImplementationClassName}(this._promise.then(obj => obj.{prop.PropertyName}()), this._client, false);"); 3124WriteLine($" return this._promise.then(obj => obj.{prop.PropertyName}());"); 3126WriteLine(" }"); 3127WriteLine(); 3162WriteLine($"): {returnPromiseWrapper} {{"); 3165WriteLine($")), this._client);"); 3166WriteLine(" }"); 3173WriteLine($"): {promiseClass} {{"); 3176WriteLine($")), this._client);"); 3177WriteLine(" }"); 3184WriteLine($"): Promise<{returnType}> {{"); 3187WriteLine("));"); 3188WriteLine(" }"); 3190WriteLine(); 3193WriteLine("}"); 3194WriteLine();