33import { ApiError } from './ApiError';
44import type { ApiRequestOptions } from './ApiRequestOptions';
55import type { ApiResult } from './ApiResult';
6- import type { OpenAPIConfig  } from './OpenAPI';
6+ import type { ClientConfig  } from './OpenAPI';
77{{ #if  @root.exportClient }} 
8- import { BaseHttpRequest } from './BaseHttpRequest';
8+ import type  { BaseHttpRequest } from './BaseHttpRequest';
99{{ else }} 
1010import { OpenAPI } from './OpenAPI';
1111{{ /if }} 
@@ -16,6 +16,9 @@ import { OpenAPI } from './OpenAPI';
1616{{> functions/isString }} 
1717
1818
19+ {{> functions/deepAssign }} 
20+ 
21+ 
1922{{> functions/isStringWithValue }} 
2023
2124
@@ -53,20 +56,19 @@ import { OpenAPI } from './OpenAPI';
5356
5457
5558{{ #if  @root.exportClient }} 
56- export class FetchHttpRequest extends BaseHttpRequest {
57-  constructor(openApiConfig: OpenAPIConfig) {
58-  super(openApiConfig);
59-  }
60- 
59+ export class FetchHttpRequest implements BaseHttpRequest {
6160 /**
6261 * Request using fetch client
6362 * @param options The request options from the the service
63+  * @param config The OpenAPI configuration
64+  * @param [mergeConfig] Additional optional OpenAPI configuration that will be merged with the first one
6465 * @returns ApiResult
6566 * @throws ApiError
6667 */
67-  async request(options: ApiRequestOptions): Promise<ApiResult > {
68-  const url = getUrl(options, this.openApiConfig);
69-  const response = await sendRequest(options, this.openApiConfig, url);
68+  async request(options: ApiRequestOptions, config: ClientConfig, mergeConfig?: ClientConfig): Promise<ApiResult > {
69+  const conf = mergeConfig ? deepAssign(config, mergeConfig) : config;
70+  const url = getUrl(options, conf);
71+  const response = await sendRequest(options, conf, url);
7072 const responseBody = await getResponseBody(response);
7173 const responseHeader = getResponseHeader(response, options.responseHeader);
7274
0 commit comments