From d8a464e48cb04a46085520e9ed8b8f53672f6cbe Mon Sep 17 00:00:00 2001 From: Sofia Leon Date: Thu, 15 Jan 2026 18:12:02 +0000 Subject: [PATCH] fix: do not generate stubMethodsContent if there are no methods --- .../src/$version/$service_client.ts.njk | 14 +++++++++----- .../esm/src/$version/$service_client.ts.njk | 14 +++++++++----- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/generator/gapic-generator-typescript/templates/cjs/typescript_gapic/src/$version/$service_client.ts.njk b/generator/gapic-generator-typescript/templates/cjs/typescript_gapic/src/$version/$service_client.ts.njk index 0547a4653..da67e250f 100644 --- a/generator/gapic-generator-typescript/templates/cjs/typescript_gapic/src/$version/$service_client.ts.njk +++ b/generator/gapic-generator-typescript/templates/cjs/typescript_gapic/src/$version/$service_client.ts.njk @@ -438,10 +438,7 @@ export class {{ service.name }}Client { (this._protos as any).{{api.naming.protoPackage}}.{{ service.name }}, this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; - // Iterate over each of the methods that the service provides - // and create an API call method for each. - const {{ service.name.toCamelCase() }}StubMethods = - [ + {%- set stubMethodsContent %} {%- set stubMethodsJoiner = joiner(', ') -%} {%- for method in service.method -%} {%- if not method.ignoreMapPagingMethod %} @@ -449,7 +446,13 @@ export class {{ service.name }}Client { '{{ method.name.toCamelCase(true) }}' {%- endif %} {%- endfor -%} - ]; +{% endset -%} +{%- if stubMethodsContent | trim %} + + // Iterate over each of the methods that the service provides + // and create an API call method for each. + const {{ service.name.toCamelCase() }}StubMethods = + [{{ stubMethodsContent | safe }}]; for (const methodName of {{ service.name.toCamelCase() }}StubMethods) { const callPromise = this.{{ service.name.toCamelCase() }}Stub.then( stub => (...args: Array<{}>) => { @@ -495,6 +498,7 @@ export class {{ service.name }}Client { this.innerApiCalls[methodName] = apiCall; } +{%- endif -%} {%- if service.options and service.options.deprecated %} this.warn('DEP${{service.name}}', '{{service.name}} is deprecated and may be removed in a future version.', 'DeprecationWarning'); {%- endif %} diff --git a/generator/gapic-generator-typescript/templates/esm/typescript_gapic/esm/src/$version/$service_client.ts.njk b/generator/gapic-generator-typescript/templates/esm/typescript_gapic/esm/src/$version/$service_client.ts.njk index 129e2ebc4..62d4d28e9 100644 --- a/generator/gapic-generator-typescript/templates/esm/typescript_gapic/esm/src/$version/$service_client.ts.njk +++ b/generator/gapic-generator-typescript/templates/esm/typescript_gapic/esm/src/$version/$service_client.ts.njk @@ -449,10 +449,7 @@ export class {{ service.name }}Client { (this._protos as any).{{api.naming.protoPackage}}.{{ service.name }}, this._opts, this._providedCustomServicePath) as Promise<{[method: string]: Function}>; - // Iterate over each of the methods that the service provides - // and create an API call method for each. - const {{ service.name.toCamelCase() }}StubMethods = - [ + {%- set stubMethodsContent %} {%- set stubMethodsJoiner = joiner(', ') -%} {%- for method in service.method -%} {%- if not method.ignoreMapPagingMethod %} @@ -460,7 +457,13 @@ export class {{ service.name }}Client { '{{ method.name.toCamelCase(true) }}' {%- endif %} {%- endfor -%} - ]; +{% endset -%} +{%- if stubMethodsContent | trim %} + + // Iterate over each of the methods that the service provides + // and create an API call method for each. + const {{ service.name.toCamelCase() }}StubMethods = + [{{ stubMethodsContent | safe }}]; for (const methodName of {{ service.name.toCamelCase() }}StubMethods) { const callPromise = this.{{ service.name.toCamelCase() }}Stub.then( stub => (...args: Array<{}>) => { @@ -506,6 +509,7 @@ export class {{ service.name }}Client { this.innerApiCalls[methodName] = apiCall; } +{%- endif -%} {%- if service.options and service.options.deprecated %} this.warn('DEP${{service.name}}', '{{service.name}} is deprecated and may be removed in a future version.', 'DeprecationWarning'); {%- endif %}