479 references to WriteLine
Aspire.Hosting.CodeGeneration.TypeScript (479)
AtsTypeScriptCodeGenerator.cs (479)
203WriteLine($"{indent}/** {lines[0]} */"); 207WriteLine($"{indent}/**"); 210WriteLine(line.Length == 0 ? $"{indent} *" : $"{indent} * {line}"); 212WriteLine($"{indent} */"); 479WriteLine("import { unregisterCallback } from './transport.mjs';"); 483WriteLine(""" 536WriteLine(); 614WriteLine("// ============================================================================"); 615WriteLine("// Handle Type Aliases (Internal - not exported to users)"); 616WriteLine("// ============================================================================"); 617WriteLine(); 625WriteLine($"type {handleName} = Handle<'{typeId}'>;"); 626WriteLine(); 649WriteLine("// ============================================================================"); 650WriteLine("// Enum Types"); 651WriteLine("// ============================================================================"); 652WriteLine(); 657WriteLine($"export enum {enumType.Name} {{"); 667WriteLine($" {value.Name} = \"{value.Name}\","); 670WriteLine("}"); 671WriteLine(); 689WriteLine("// ============================================================================"); 690WriteLine("// DTO Interfaces"); 691WriteLine("// ============================================================================"); 692WriteLine(); 699WriteLine($"export interface {interfaceName} {{"); 710WriteLine($" {propName}?: {tsType};"); 717WriteLine($" /** {clientOnly.Summary} */"); 718WriteLine($" {clientOnly.Name}?: {clientOnly.Type};"); 721WriteLine("}"); 722WriteLine(); 735WriteLine("// ============================================================================"); 736WriteLine("// Exported Values"); 737WriteLine("// ============================================================================"); 738WriteLine(); 742WriteLine(exportedNamespace.Content); 743WriteLine(); 757WriteLine("// ============================================================================"); 758WriteLine("// Options Interfaces"); 759WriteLine("// ============================================================================"); 760WriteLine(); 764WriteLine($"export interface {interfaceName} {{"); 769WriteLine($" {param.Name}?: {tsType};"); 771WriteLine("}"); 772WriteLine(); 780WriteLine($" {propertyName}(): {returnType};"); 798WriteLine($" readonly {propertyName}: AspireDict<{keyType}, {valueType}>;"); 806WriteLine($" readonly {propertyName}: AspireList<{elementType}>;"); 812WriteLine($" {propertyName}: {{"); 818WriteLine($" get: () => {promiseInterfaceName};"); 823WriteLine($" get: () => Promise<{returnTypeName}>;"); 833WriteLine($" set: (value: {valueType}) => Promise<void>;"); 837WriteLine(" };"); 844WriteLine("// ============================================================================"); 845WriteLine($"// {interfaceName}"); 846WriteLine("// ============================================================================"); 847WriteLine(); 849WriteLine($"export interface {interfaceName} {{"); 850WriteLine(" toJSON(): MarshalledHandle;"); 875WriteLine($" {capability.MethodName}({signature.ParameterList}): {promiseInterfaceName};"); 880WriteLine($" {capability.MethodName}({signature.ParameterList}): Promise<{returnType}>;"); 885WriteLine($" {capability.MethodName}({signature.ParameterList}): {_projector.GetBuilderPromiseInterfaceForMethod(builder, capability)};"); 889WriteLine("}"); 890WriteLine(); 912WriteLine($"export interface {promiseInterfaceName} extends PromiseLike<{interfaceName}> {{"); 929WriteLine($" {capability.MethodName}({signature.ParameterList}): {returnPromiseInterfaceName};"); 934WriteLine($" {capability.MethodName}({signature.ParameterList}): Promise<{returnType}>;"); 939WriteLine($" {capability.MethodName}({signature.ParameterList}): {_projector.GetBuilderPromiseInterfaceForMethod(builder, capability)};"); 943WriteLine("}"); 944WriteLine(); 955WriteLine($" {signature.MethodName}({signature.ParameterList}): {_projector.GetPublicPromiseInterfaceName(capability.ReturnType.TypeId)};"); 959WriteLine($" {signature.MethodName}({signature.ParameterList}): {TypeScriptApiProjector.GetPromiseInterfaceName(className)};"); 964WriteLine($" {signature.MethodName}({signature.ParameterList}): Promise<{returnType}>;"); 973WriteLine("// ============================================================================"); 974WriteLine($"// {interfaceName}"); 975WriteLine("// ============================================================================"); 976WriteLine(); 978WriteLine($"export interface {interfaceName} {{"); 979WriteLine(" toJSON(): MarshalledHandle;"); 1002WriteLine("}"); 1003WriteLine(); 1011WriteLine($"export interface {promiseInterfaceName} extends PromiseLike<{interfaceName}> {{"); 1020WriteLine("}"); 1021WriteLine(); 1031WriteLine("// ============================================================================"); 1032WriteLine($"// {implementationClassName}"); 1033WriteLine("// ============================================================================"); 1034WriteLine(); 1040WriteLine($"class {implementationClassName} extends ResourceBuilderBase<{handleType}> implements {builder.BuilderClassName} {{"); 1043WriteLine($" constructor(handle: {handleType}, client: AspireClientRpc) {{"); 1044WriteLine($" super(handle, client);"); 1045WriteLine(" }"); 1046WriteLine(); 1070WriteLine("}"); 1071WriteLine(); 1169WriteLine($"): {returnPromiseInterfaceName} {{"); 1170WriteLine(" const promise = (async () => {"); 1175WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 1187WriteLine($" const handle = await this._client.invokeCapability<{returnHandleType}>("); 1188WriteLine($" '{capability.CapabilityId}',"); 1189WriteLine(" rpcArgs"); 1190WriteLine(" );"); 1191WriteLine($" return new {returnImplementationClassNameForWrapper}(handle, this._client);"); 1192WriteLine(" })();"); 1193WriteLine($" return new {returnPromiseImplementationClassName}(promise, this._client);"); 1194WriteLine(" }"); 1195WriteLine(); 1205WriteLine($"): Promise<{returnType}> {{"); 1211WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 1229WriteLine(" const result = await this._client.invokeCapability<string | null>("); 1230WriteLine($" '{capability.CapabilityId}',"); 1231WriteLine(" rpcArgs"); 1232WriteLine(" );"); 1233WriteLine(" return CancellationToken.fromValue(result);"); 1237WriteLine($" return await this._client.invokeCapability<{returnType}>("); 1238WriteLine($" '{capability.CapabilityId}',"); 1239WriteLine($" rpcArgs"); 1240WriteLine(" );"); 1242WriteLine(" }"); 1243WriteLine(); 1248WriteLine($" /** @internal */"); 1252WriteLine(); 1269WriteLine($" const result = await this._client.invokeCapability<{returnHandle}>("); 1270WriteLine($" '{capability.CapabilityId}',"); 1271WriteLine($" rpcArgs"); 1272WriteLine(" );"); 1273WriteLine($" return new {returnImplementationClassName}(result, this._client);"); 1277WriteLine($" await this._client.invokeCapability<void>("); 1278WriteLine($" '{capability.CapabilityId}',"); 1279WriteLine($" rpcArgs"); 1280WriteLine(" );"); 1281WriteLine($" return this;"); 1283WriteLine(" }"); 1284WriteLine(); 1293WriteLine(); 1299WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 1312WriteLine($" const flushAndBuild = async () => {{ await this._client.flushPendingPromises(); return {internalCall}; }};"); 1316WriteLine($" return new {promiseImplementationClass}(flushAndBuild(), this._client, false);"); 1320WriteLine($" return new {promiseImplementationClass}({internalCall}, this._client);"); 1322WriteLine(" }"); 1323WriteLine(); 1350WriteLine($"{indent}{param.Name} = isPromiseLike({param.Name}) ? await {param.Name} : {param.Name};"); 1369WriteLine($"{indent}{paramName} = isPromiseLike({paramName}) ? await {paramName} : {paramName};"); 1411WriteLine($"{indent}const rpcArgs: Record<string, unknown> = {{ {string.Join(", ", requiredArgs)} }};"); 1418WriteLine($"{indent}if ({localParameterName} !== undefined) rpcArgs.{param.Name} = {rpcExpression};"); 1444WriteLine($"{indent}const rpcArgs: Record<string, unknown> = {{ {string.Join(", ", requiredArgs)} }};"); 1451WriteLine($"{indent}if ({localParameterName} !== undefined) rpcArgs.{param.Name} = {rpcExpression};"); 1478WriteLine($"{indent}const {dtoRpcLocalName} = {localParameterName} === undefined || {localParameterName} === null ? {localParameterName} : {{ ...{localParameterName} }};"); 1479WriteLine($"{indent}if ({dtoRpcLocalName} !== undefined && {dtoRpcLocalName} !== null) {{"); 1481WriteLine($"{indent}}}"); 1485WriteLine($"{indent}const {dtoRpcLocalName} = {localParameterName} === null ? {localParameterName} : {{ ...{localParameterName} }};"); 1486WriteLine($"{indent}if ({dtoRpcLocalName} !== null) {{"); 1488WriteLine($"{indent}}}"); 1501WriteLine($"{indent}const {dtoDataLocalName} = {dtoRpcLocalName} as Record<string, unknown>;"); 1509WriteLine($"{indent}const {callbackLocalName} = {dtoRpcLocalName}.{propertyName};"); 1510WriteLine($"{indent}if ({callbackLocalName} !== undefined) {{"); 1512WriteLine($"{indent} {dtoDataLocalName}[\"{propertyName}\"] = {callbackLocalName}Id;"); 1513WriteLine($"{indent}}}"); 1545WriteLine($"{indent}const {dtoPropertyLocalName} = {dtoRpcLocalName}.{propertyName};"); 1546WriteLine($"{indent}if ({dtoPropertyLocalName} !== undefined && {dtoPropertyLocalName} !== null) {{"); 1547WriteLine($"{indent} const {nestedDtoRpcLocalName} = {{ ...{dtoPropertyLocalName} }};"); 1549WriteLine($"{indent} {dtoDataLocalName}[\"{propertyName}\"] = {nestedDtoRpcLocalName};"); 1550WriteLine($"{indent}}}"); 1659WriteLine("/** @internal */"); 1660WriteLine($"const {promiseImplementationClass} = $aspireCreateFluentPromiseClass<{className}, {promiseClass}>((): $aspireFluentPromiseTransitions => ({{"); 1666WriteLine($" [{methodNameLiteral}]: null,"); 1678WriteLine($" [{methodNameLiteral}]: {transitionExpression},"); 1680WriteLine("}));"); 1681WriteLine(); 1691WriteLine("// ============================================================================"); 1692WriteLine("// Entry Point Functions"); 1693WriteLine("// ============================================================================"); 1694WriteLine(); 1751WriteLine($"): {signature.ReturnType} {{"); 1753WriteLine($" const promise = (async () => {{"); 1759WriteLine($" {param.Name} = isPromiseLike({param.Name}) ? await {param.Name} : {param.Name};"); 1766WriteLine($" const rpcArgs: Record<string, unknown> = {{ {string.Join(", ", requiredArgs)} }};"); 1769WriteLine($" if ({param.Name} !== undefined) rpcArgs.{param.Name} = {GetRpcArgumentExpressionForParam(param, param.Name, useRegisteredCallback: false)};"); 1771WriteLine($" const handle = await client.invokeCapability<{handleType}>("); 1772WriteLine($" '{capability.CapabilityId}',"); 1773WriteLine(" rpcArgs"); 1774WriteLine(" );"); 1775WriteLine($" return new {returnWrapperImplementationClass}(handle, client);"); 1776WriteLine($" }})();"); 1777WriteLine($" return new {returnPromiseImplementationClass}(promise, client);"); 1778WriteLine("}"); 1789WriteLine($"): {signature.ReturnType} {{"); 1795WriteLine($" {param.Name} = isPromiseLike({param.Name}) ? await {param.Name} : {param.Name};"); 1802WriteLine($" const rpcArgs: Record<string, unknown> = {{ {string.Join(", ", requiredArgs)} }};"); 1805WriteLine($" if ({param.Name} !== undefined) rpcArgs.{param.Name} = {GetRpcArgumentExpressionForParam(param, param.Name, useRegisteredCallback: false)};"); 1809WriteLine($" await client.invokeCapability<void>("); 1813WriteLine(" const result = await client.invokeCapability<string | null>("); 1814WriteLine($" '{capability.CapabilityId}',"); 1815WriteLine(" rpcArgs"); 1816WriteLine(" );"); 1817WriteLine(" return CancellationToken.fromValue(result);"); 1818WriteLine("}"); 1819WriteLine(); 1824WriteLine($" return await client.invokeCapability<{returnType}>("); 1826WriteLine($" '{capability.CapabilityId}',"); 1827WriteLine(" rpcArgs"); 1828WriteLine(" );"); 1829WriteLine("}"); 1831WriteLine(); 1858WriteLine($"{indent}const {callbackName}Id = {callbackName} ? registerCallback(async ({paramSignature}) => {{"); 1862WriteLine($"{indent}const {callbackName}Id = registerCallback(async ({paramSignature}) => {{"); 1871WriteLine(indent + "}) : undefined;"); 1875WriteLine(indent + "});"); 1895WriteLine($"{bodyIndent}{returnPrefix}await {callbackName}();"); 1903WriteLine($"{bodyIndent}{returnPrefix}await {callbackName}({cbParam.Name});"); 1917WriteLine($"{bodyIndent}{returnPrefix}await {callbackName}({string.Join(", ", callArgs)});"); 1928WriteLine($"{indent}const {callbackParameter.Name} = CancellationToken.fromValue({callbackArgName});"); 1936WriteLine($"{indent}const {callbackParameter.Name}Handle = wrapIfHandle({callbackArgName}) as {handleType};"); 1937WriteLine($"{indent}const {callbackParameter.Name} = new AspireDict<{keyType}, {valueType}>({callbackParameter.Name}Handle, {clientExpression}, '{cbTypeId}');"); 1942WriteLine($"{indent}const {callbackParameter.Name}Handle = wrapIfHandle({callbackArgName}) as {handleType};"); 1943WriteLine($"{indent}const {callbackParameter.Name} = new {TypeScriptApiProjector.GetImplementationClassName(wrapperClassName)}({callbackParameter.Name}Handle, {clientExpression});"); 1947WriteLine($"{indent}const {callbackParameter.Name} = wrapIfHandle({callbackArgName}) as {tsType};"); 1955WriteLine($$""" 1988WriteLine($$""" 2032WriteLine(""" 2038WriteLine("export { refExpr, ReferenceExpression } from './base.mjs';"); 2040WriteLine("export type { HandleReference, Awaitable } from './base.mjs';"); 2041WriteLine(); 2046WriteLine(""" 2104WriteLine(); 2105WriteLine("// ============================================================================"); 2106WriteLine("// Handle Wrapper Registrations"); 2107WriteLine("// ============================================================================"); 2108WriteLine(); 2109WriteLine("// Register wrapper factories for typed handle wrapping in callbacks"); 2116WriteLine($"registerHandleWrapper('{typeClass.TypeId}', (handle, client) => new {TypeScriptApiProjector.GetImplementationClassName(className)}(handle as {handleType}, client));"); 2124WriteLine($"registerHandleWrapper('{builder.TypeId}', (handle, client) => new {TypeScriptApiProjector.GetImplementationClassName(className)}(handle as {handleType}, client));"); 2136WriteLine($"registerHandleWrapper('{aliasTypeId}', (handle, client) => new {TypeScriptApiProjector.GetImplementationClassName(className)}(handle as {handleType}, client));"); 2139WriteLine(); 2155WriteLine("// ============================================================================"); 2156WriteLine($"// {implementationClassName}"); 2157WriteLine("// ============================================================================"); 2158WriteLine(); 2169WriteLine($"class {implementationClassName} implements {className} {{"); 2170WriteLine($" constructor(private _handle: {handleType}, private _client: AspireClientRpc) {{}}"); 2171WriteLine(); 2172WriteLine($" /** Serialize for JSON-RPC transport */"); 2173WriteLine($" toJSON(): MarshalledHandle {{ return this._handle.toJSON(); }}"); 2174WriteLine(); 2209WriteLine("}"); 2210WriteLine(); 2281WriteLine($" {propertyName} = {{"); 2286WriteLine($" get: async (): Promise<{returnType}> => {{"); 2289WriteLine(" const result = await this._client.invokeCapability<string | null>("); 2290WriteLine($" '{getter.CapabilityId}',"); 2291WriteLine(" { context: this._handle }"); 2292WriteLine(" );"); 2293WriteLine(" return CancellationToken.fromValue(result);"); 2297WriteLine($" return await this._client.invokeCapability<{returnType}>("); 2298WriteLine($" '{getter.CapabilityId}',"); 2299WriteLine($" {{ context: this._handle }}"); 2300WriteLine(" );"); 2302WriteLine(" },"); 2312WriteLine($" set: async (value: {valueType}): Promise<void> => {{"); 2314WriteLine($" await this._client.invokeCapability<void>("); 2315WriteLine($" '{setter.CapabilityId}',"); 2316WriteLine($" {{ context: this._handle, {GetRpcArgumentEntry("value", valueParam.Type)} }}"); 2317WriteLine(" );"); 2318WriteLine(" }"); 2322WriteLine(" };"); 2323WriteLine(); 2354WriteLine($" {propertyName}(): {promiseInterfaceName} {{"); 2355WriteLine($" return new {promiseImplementationClassName}(this._client.invokeCapability<{collectionType}>("); 2356WriteLine($" '{getter.CapabilityId}',"); 2357WriteLine(" { context: this._handle }"); 2358WriteLine(" ), this._client, false);"); 2359WriteLine(" }"); 2360WriteLine(); 2366WriteLine($" async {propertyName}(): Promise<{returnType}> {{"); 2369WriteLine(" const result = await this._client.invokeCapability<string | null>("); 2370WriteLine($" '{getter.CapabilityId}',"); 2371WriteLine(" { context: this._handle }"); 2372WriteLine(" );"); 2373WriteLine(" return CancellationToken.fromValue(result);"); 2377WriteLine($" return await this._client.invokeCapability<{returnType}>("); 2378WriteLine($" '{getter.CapabilityId}',"); 2379WriteLine(" { context: this._handle }"); 2380WriteLine(" );"); 2382WriteLine(" }"); 2383WriteLine(); 2393WriteLine($" {propertyName}(): {promiseInterfaceName} {{"); 2394WriteLine(" const promise = (async () => {"); 2395WriteLine($" const handle = await this._client.invokeCapability<{handleType}>("); 2396WriteLine($" '{getter.CapabilityId}',"); 2397WriteLine(" { context: this._handle }"); 2398WriteLine(" );"); 2399WriteLine($" return new {wrapperImplementationClassName}(handle, this._client);"); 2400WriteLine(" })();"); 2401WriteLine($" return new {promiseImplementationClassName}(promise, this._client, false);"); 2402WriteLine(" }"); 2403WriteLine(); 2407WriteLine($" async {propertyName}(): Promise<{wrapperClassName}> {{"); 2408WriteLine($" const handle = await this._client.invokeCapability<{handleType}>("); 2409WriteLine($" '{getter.CapabilityId}',"); 2410WriteLine(" { context: this._handle }"); 2411WriteLine(" );"); 2412WriteLine($" return new {wrapperImplementationClassName}(handle, this._client);"); 2413WriteLine(" }"); 2414WriteLine(); 2445WriteLine($" {propertyName} = {{"); 2448WriteLine($" get: (): {promiseInterfaceName} => {{"); 2449WriteLine(" const promise = (async () => {"); 2450WriteLine($" const handle = await this._client.invokeCapability<{handleType}>("); 2451WriteLine($" '{getter.CapabilityId}',"); 2452WriteLine($" {{ context: this._handle }}"); 2453WriteLine(" );"); 2454WriteLine($" return new {wrapperImplementationClassName}(handle, this._client);"); 2455WriteLine(" })();"); 2456WriteLine($" return new {promiseImplementationClassName}(promise, this._client, false);"); 2457WriteLine(" },"); 2461WriteLine($" get: async (): Promise<{wrapperClassName}> => {{"); 2462WriteLine($" const handle = await this._client.invokeCapability<{handleType}>("); 2463WriteLine($" '{getter.CapabilityId}',"); 2464WriteLine($" {{ context: this._handle }}"); 2465WriteLine(" );"); 2466WriteLine($" return new {wrapperImplementationClassName}(handle, this._client);"); 2467WriteLine(" },"); 2476WriteLine($" set: async (value: {valueType}): Promise<void> => {{"); 2478WriteLine($" await this._client.invokeCapability<void>("); 2479WriteLine($" '{setter.CapabilityId}',"); 2480WriteLine($" {{ context: this._handle, {GetRpcArgumentEntry("value", valueParam.Type)} }}"); 2481WriteLine(" );"); 2482WriteLine(" }"); 2486WriteLine(" };"); 2487WriteLine(); 2514WriteLine($" private _{propertyName}?: AspireDict<{keyType}, {valueType}>;"); 2515WriteLine($" async {propertyName}(): Promise<AspireDict<{keyType}, {valueType}>> {{"); 2516WriteLine($" if (!this._{propertyName}) {{"); 2517WriteLine($" this._{propertyName} = new AspireDict<{keyType}, {valueType}>("); 2518WriteLine($" this._handle,"); 2519WriteLine($" this._client,"); 2520WriteLine($" {typeId},"); 2521WriteLine($" {getterCapabilityId}"); 2522WriteLine(" );"); 2523WriteLine(" }"); 2524WriteLine($" return this._{propertyName};"); 2525WriteLine(" }"); 2526WriteLine(); 2547WriteLine($" private _{propertyName}?: AspireDict<{keyType}, {valueType}>;"); 2548WriteLine($" get {propertyName}(): AspireDict<{keyType}, {valueType}> {{"); 2549WriteLine($" if (!this._{propertyName}) {{"); 2550WriteLine($" this._{propertyName} = new AspireDict<{keyType}, {valueType}>("); 2551WriteLine($" this._handle,"); 2552WriteLine($" this._client,"); 2553WriteLine($" {typeId},"); 2554WriteLine($" {getterCapabilityId}"); 2555WriteLine(" );"); 2556WriteLine(" }"); 2557WriteLine($" return this._{propertyName};"); 2558WriteLine(" }"); 2559WriteLine(); 2579WriteLine($" private _{propertyName}?: AspireList<{elementType}>;"); 2580WriteLine($" async {propertyName}(): Promise<AspireList<{elementType}>> {{"); 2581WriteLine($" if (!this._{propertyName}) {{"); 2582WriteLine($" this._{propertyName} = new AspireList<{elementType}>("); 2583WriteLine($" this._handle,"); 2584WriteLine($" this._client,"); 2585WriteLine($" {typeId},"); 2586WriteLine($" {getterCapabilityId}"); 2587WriteLine(" );"); 2588WriteLine(" }"); 2589WriteLine($" return this._{propertyName};"); 2590WriteLine(" }"); 2591WriteLine(); 2606WriteLine($" private _{propertyName}?: AspireList<{elementType}>;"); 2607WriteLine($" get {propertyName}(): AspireList<{elementType}> {{"); 2608WriteLine($" if (!this._{propertyName}) {{"); 2609WriteLine($" this._{propertyName} = new AspireList<{elementType}>("); 2610WriteLine($" this._handle,"); 2611WriteLine($" this._client,"); 2612WriteLine($" {typeId},"); 2613WriteLine($" {getterCapabilityId}"); 2614WriteLine(" );"); 2615WriteLine(" }"); 2616WriteLine($" return this._{propertyName};"); 2617WriteLine(" }"); 2618WriteLine(); 2673WriteLine($"): {returnPromiseInterfaceName} {{"); 2674WriteLine(" const promise = (async () => {"); 2679WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 2684WriteLine($" const handle = await this._client.invokeCapability<{returnHandleType}>("); 2685WriteLine($" '{method.CapabilityId}',"); 2686WriteLine(" rpcArgs"); 2687WriteLine(" );"); 2688WriteLine($" return new {returnImplementationClassName}(handle, this._client);"); 2689WriteLine(" })();"); 2690WriteLine($" return new {returnPromiseImplementationClassName}(promise, this._client);"); 2691WriteLine(" }"); 2692WriteLine(); 2700WriteLine($"): Promise<{returnType}> {{"); 2706WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 2714WriteLine($" await this._client.invokeCapability<void>("); 2718WriteLine(" const result = await this._client.invokeCapability<string | null>("); 2719WriteLine($" '{method.CapabilityId}',"); 2720WriteLine(" rpcArgs"); 2721WriteLine(" );"); 2722WriteLine(" return CancellationToken.fromValue(result);"); 2723WriteLine(" }"); 2724WriteLine(); 2729WriteLine($" return await this._client.invokeCapability<{returnType}>("); 2731WriteLine($" '{method.CapabilityId}',"); 2732WriteLine($" rpcArgs"); 2733WriteLine(" );"); 2734WriteLine(" }"); 2735WriteLine(); 2786WriteLine($"): {returnPromiseInterfaceName} {{"); 2787WriteLine(" const promise = (async () => {"); 2792WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 2797WriteLine($" const handle = await this._client.invokeCapability<{returnHandleType}>("); 2798WriteLine($" '{capability.CapabilityId}',"); 2799WriteLine(" rpcArgs"); 2800WriteLine(" );"); 2801WriteLine($" return new {returnImplementationClassName}(handle, this._client);"); 2802WriteLine(" })();"); 2803WriteLine($" return new {returnPromiseImplementationClassName}(promise, this._client);"); 2804WriteLine(" }"); 2805WriteLine(); 2813WriteLine($"): Promise<{returnType}> {{"); 2819WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 2827WriteLine($" await this._client.invokeCapability<void>("); 2831WriteLine($" return await this._client.invokeCapability<{returnType}>("); 2833WriteLine($" '{capability.CapabilityId}',"); 2834WriteLine($" rpcArgs"); 2835WriteLine(" );"); 2836WriteLine(" }"); 2837WriteLine(); 2916WriteLine($" /** @internal */"); 2919WriteLine($"): Promise<{returnWrapperClass}> {{"); 2931WriteLine(" try"); 2932WriteLine(" {"); 2942WriteLine($"{bodyIndent}const result = await this._client.invokeCapability<{returnHandleType}>("); 2943WriteLine($"{bodyIndent} '{capability.CapabilityId}',"); 2944WriteLine($"{bodyIndent} rpcArgs"); 2945WriteLine($"{bodyIndent});"); 2946WriteLine($"{bodyIndent}return new {returnWrapperImplementationClass}(result, this._client);"); 2949WriteLine(" }"); 2950WriteLine(" finally"); 2951WriteLine(" {"); 2954WriteLine($" if ({callback.Name}Id) unregisterCallback({callback.Name}Id);"); 2956WriteLine(" }"); 2958WriteLine(" }"); 2959WriteLine(); 2965WriteLine($"): {returnPromiseWrapper} {{"); 2971WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 2980WriteLine($" const flushAndBuild = async () => {{ await this._client.flushPendingPromises(); return {internalCall}; }};"); 2981WriteLine($" return new {returnPromiseImplementationClass}(flushAndBuild(), this._client, false);"); 2985WriteLine($" return new {returnPromiseImplementationClass}({internalCall}, this._client);"); 2987WriteLine(" }"); 2993WriteLine($" /** @internal */"); 2996WriteLine($"): Promise<{className}> {{"); 3011WriteLine($" await this._client.invokeCapability<void>("); 3012WriteLine($" '{capability.CapabilityId}',"); 3013WriteLine($" rpcArgs"); 3014WriteLine(" );"); 3015WriteLine($" return this;"); 3016WriteLine(" }"); 3017WriteLine(); 3023WriteLine($"): {promiseClass} {{"); 3029WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 3034WriteLine("), this._client);"); 3035WriteLine(" }"); 3043WriteLine($"): Promise<{returnType}> {{"); 3049WriteLine($" {(_projector.IsWidenedHandleType(param.Type) ? "let" : "const")} {localParameterName} = {publicOptionsParamName}?.{param.Name};"); 3067WriteLine(" const result = await this._client.invokeCapability<string | null>("); 3068WriteLine($" '{capability.CapabilityId}',"); 3069WriteLine(" rpcArgs"); 3070WriteLine(" );"); 3071WriteLine(" return CancellationToken.fromValue(result);"); 3075WriteLine($" return await this._client.invokeCapability<{returnType}>("); 3076WriteLine($" '{capability.CapabilityId}',"); 3077WriteLine($" rpcArgs"); 3078WriteLine(" );"); 3080WriteLine(" }"); 3082WriteLine();