diff --git a/modules/openapi-generator/src/main/resources/typescript/configuration.mustache b/modules/openapi-generator/src/main/resources/typescript/configuration.mustache index e16f368d889..06fb3994de6 100644 --- a/modules/openapi-generator/src/main/resources/typescript/configuration.mustache +++ b/modules/openapi-generator/src/main/resources/typescript/configuration.mustache @@ -12,16 +12,16 @@ import { BaseServerConfiguration, server1 } from "./servers{{importFileExtension import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth{{importFileExtension}}"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -105,43 +105,36 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu */ {{#useInversify}} export function mergeConfiguration(conf: Configuration, options?: Configuration): Configuration { - if (options) { - conf = options; - } - return conf; + return options || conf; } {{/useInversify}} {{^useInversify}} export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } {{/useInversify}} diff --git a/modules/openapi-generator/src/main/resources/typescript/types/ObservableAPI.mustache b/modules/openapi-generator/src/main/resources/typescript/types/ObservableAPI.mustache index f7a2c71014f..f1eab3a96ba 100644 --- a/modules/openapi-generator/src/main/resources/typescript/types/ObservableAPI.mustache +++ b/modules/openapi-generator/src/main/resources/typescript/types/ObservableAPI.mustache @@ -65,14 +65,14 @@ export class Observable{{classname}} { public {{nickname}}WithHttpInfo({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}_options?: Configuration{{^useInversify}}Options{{/useInversify}}): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}{{#useInversify}}_options{{/useInversify}}{{^useInversify}}_config{{/useInversify}}); + const requestContextPromise = this.requestFactory.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}_config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/client/echo_api/typescript/build/configuration.ts b/samples/client/echo_api/typescript/build/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/client/echo_api/typescript/build/configuration.ts +++ b/samples/client/echo_api/typescript/build/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/client/echo_api/typescript/build/types/ObservableAPI.ts b/samples/client/echo_api/typescript/build/types/ObservableAPI.ts index 2032d741f30..ebedfaf274d 100644 --- a/samples/client/echo_api/typescript/build/types/ObservableAPI.ts +++ b/samples/client/echo_api/typescript/build/types/ObservableAPI.ts @@ -46,7 +46,7 @@ export class ObservableAuthApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -78,7 +78,7 @@ export class ObservableAuthApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -128,7 +128,7 @@ export class ObservableBodyApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -161,7 +161,7 @@ export class ObservableBodyApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -195,7 +195,7 @@ export class ObservableBodyApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -229,7 +229,7 @@ export class ObservableBodyApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -263,7 +263,7 @@ export class ObservableBodyApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -297,7 +297,7 @@ export class ObservableBodyApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -331,7 +331,7 @@ export class ObservableBodyApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -365,7 +365,7 @@ export class ObservableBodyApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -399,7 +399,7 @@ export class ObservableBodyApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -433,7 +433,7 @@ export class ObservableBodyApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -487,7 +487,7 @@ export class ObservableFormApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -523,7 +523,7 @@ export class ObservableFormApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -562,7 +562,7 @@ export class ObservableFormApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -623,7 +623,7 @@ export class ObservableHeaderApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -682,7 +682,7 @@ export class ObservablePathApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -738,7 +738,7 @@ export class ObservableQueryApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -775,7 +775,7 @@ export class ObservableQueryApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -813,7 +813,7 @@ export class ObservableQueryApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -849,7 +849,7 @@ export class ObservableQueryApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -883,7 +883,7 @@ export class ObservableQueryApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -917,7 +917,7 @@ export class ObservableQueryApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -951,7 +951,7 @@ export class ObservableQueryApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -985,7 +985,7 @@ export class ObservableQueryApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1019,7 +1019,7 @@ export class ObservableQueryApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1053,7 +1053,7 @@ export class ObservableQueryApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/client/others/typescript/builds/array-of-lists/configuration.ts b/samples/client/others/typescript/builds/array-of-lists/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/client/others/typescript/builds/array-of-lists/configuration.ts +++ b/samples/client/others/typescript/builds/array-of-lists/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/client/others/typescript/builds/array-of-lists/types/ObservableAPI.ts b/samples/client/others/typescript/builds/array-of-lists/types/ObservableAPI.ts index c81c9ff213d..5a77711dfea 100644 --- a/samples/client/others/typescript/builds/array-of-lists/types/ObservableAPI.ts +++ b/samples/client/others/typescript/builds/array-of-lists/types/ObservableAPI.ts @@ -34,7 +34,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/client/others/typescript/builds/enum-single-value/configuration.ts b/samples/client/others/typescript/builds/enum-single-value/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/client/others/typescript/builds/enum-single-value/configuration.ts +++ b/samples/client/others/typescript/builds/enum-single-value/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/client/others/typescript/builds/null-types-simple/configuration.ts b/samples/client/others/typescript/builds/null-types-simple/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/client/others/typescript/builds/null-types-simple/configuration.ts +++ b/samples/client/others/typescript/builds/null-types-simple/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/client/others/typescript/builds/with-unique-items/configuration.ts b/samples/client/others/typescript/builds/with-unique-items/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/client/others/typescript/builds/with-unique-items/configuration.ts +++ b/samples/client/others/typescript/builds/with-unique-items/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/client/others/typescript/builds/with-unique-items/types/ObservableAPI.ts b/samples/client/others/typescript/builds/with-unique-items/types/ObservableAPI.ts index 54132586b76..8c4dae1fb56 100644 --- a/samples/client/others/typescript/builds/with-unique-items/types/ObservableAPI.ts +++ b/samples/client/others/typescript/builds/with-unique-items/types/ObservableAPI.ts @@ -33,7 +33,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/client/others/typescript/encode-decode/build/configuration.ts b/samples/client/others/typescript/encode-decode/build/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/client/others/typescript/encode-decode/build/configuration.ts +++ b/samples/client/others/typescript/encode-decode/build/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/client/others/typescript/encode-decode/build/types/ObservableAPI.ts b/samples/client/others/typescript/encode-decode/build/types/ObservableAPI.ts index e4b2aa862ec..98a4d0cbf06 100644 --- a/samples/client/others/typescript/encode-decode/build/types/ObservableAPI.ts +++ b/samples/client/others/typescript/encode-decode/build/types/ObservableAPI.ts @@ -34,7 +34,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -62,7 +62,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -90,7 +90,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -118,7 +118,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -146,7 +146,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -174,7 +174,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -202,7 +202,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -230,7 +230,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -258,7 +258,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -286,7 +286,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -314,7 +314,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -342,7 +342,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -370,7 +370,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -398,7 +398,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -426,7 +426,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -454,7 +454,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -483,7 +483,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -513,7 +513,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -543,7 +543,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -573,7 +573,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -603,7 +603,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -633,7 +633,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -663,7 +663,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -693,7 +693,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -723,7 +723,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -753,7 +753,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -783,7 +783,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -813,7 +813,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -843,7 +843,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -873,7 +873,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -903,7 +903,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -933,7 +933,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/openapi3/client/petstore/typescript/builds/browser/configuration.ts b/samples/openapi3/client/petstore/typescript/builds/browser/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/openapi3/client/petstore/typescript/builds/browser/configuration.ts +++ b/samples/openapi3/client/petstore/typescript/builds/browser/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/openapi3/client/petstore/typescript/builds/browser/types/ObservableAPI.ts b/samples/openapi3/client/petstore/typescript/builds/browser/types/ObservableAPI.ts index 58459af26d4..0ccd300d0fc 100644 --- a/samples/openapi3/client/petstore/typescript/builds/browser/types/ObservableAPI.ts +++ b/samples/openapi3/client/petstore/typescript/builds/browser/types/ObservableAPI.ts @@ -41,7 +41,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -76,7 +76,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -111,7 +111,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -145,7 +145,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -179,7 +179,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -213,7 +213,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -249,7 +249,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -287,7 +287,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -341,7 +341,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -374,7 +374,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -407,7 +407,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -441,7 +441,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -493,7 +493,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -527,7 +527,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -561,7 +561,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -595,7 +595,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -629,7 +629,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -664,7 +664,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -698,7 +698,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -732,7 +732,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/openapi3/client/petstore/typescript/builds/composed-schemas/configuration.ts b/samples/openapi3/client/petstore/typescript/builds/composed-schemas/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/openapi3/client/petstore/typescript/builds/composed-schemas/configuration.ts +++ b/samples/openapi3/client/petstore/typescript/builds/composed-schemas/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/openapi3/client/petstore/typescript/builds/composed-schemas/types/ObservableAPI.ts b/samples/openapi3/client/petstore/typescript/builds/composed-schemas/types/ObservableAPI.ts index 5cfef19528d..3f657b1f314 100644 --- a/samples/openapi3/client/petstore/typescript/builds/composed-schemas/types/ObservableAPI.ts +++ b/samples/openapi3/client/petstore/typescript/builds/composed-schemas/types/ObservableAPI.ts @@ -40,7 +40,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -70,7 +70,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -100,7 +100,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/openapi3/client/petstore/typescript/builds/default/configuration.ts b/samples/openapi3/client/petstore/typescript/builds/default/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/openapi3/client/petstore/typescript/builds/default/configuration.ts +++ b/samples/openapi3/client/petstore/typescript/builds/default/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/openapi3/client/petstore/typescript/builds/default/types/ObservableAPI.ts b/samples/openapi3/client/petstore/typescript/builds/default/types/ObservableAPI.ts index 58459af26d4..0ccd300d0fc 100644 --- a/samples/openapi3/client/petstore/typescript/builds/default/types/ObservableAPI.ts +++ b/samples/openapi3/client/petstore/typescript/builds/default/types/ObservableAPI.ts @@ -41,7 +41,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -76,7 +76,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -111,7 +111,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -145,7 +145,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -179,7 +179,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -213,7 +213,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -249,7 +249,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -287,7 +287,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -341,7 +341,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -374,7 +374,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -407,7 +407,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -441,7 +441,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -493,7 +493,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -527,7 +527,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -561,7 +561,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -595,7 +595,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -629,7 +629,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -664,7 +664,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -698,7 +698,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -732,7 +732,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/openapi3/client/petstore/typescript/builds/deno/configuration.ts b/samples/openapi3/client/petstore/typescript/builds/deno/configuration.ts index 1996d770eb1..2869965cf9c 100644 --- a/samples/openapi3/client/petstore/typescript/builds/deno/configuration.ts +++ b/samples/openapi3/client/petstore/typescript/builds/deno/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers.ts"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth.ts"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/openapi3/client/petstore/typescript/builds/deno/types/ObservableAPI.ts b/samples/openapi3/client/petstore/typescript/builds/deno/types/ObservableAPI.ts index e2bc011b234..6a38fcfe63d 100644 --- a/samples/openapi3/client/petstore/typescript/builds/deno/types/ObservableAPI.ts +++ b/samples/openapi3/client/petstore/typescript/builds/deno/types/ObservableAPI.ts @@ -41,7 +41,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -76,7 +76,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -111,7 +111,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -145,7 +145,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -179,7 +179,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -213,7 +213,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -249,7 +249,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -287,7 +287,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -341,7 +341,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -374,7 +374,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -407,7 +407,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -441,7 +441,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -493,7 +493,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -527,7 +527,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -561,7 +561,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -595,7 +595,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -629,7 +629,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -664,7 +664,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -698,7 +698,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -732,7 +732,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/openapi3/client/petstore/typescript/builds/deno_object_params/configuration.ts b/samples/openapi3/client/petstore/typescript/builds/deno_object_params/configuration.ts index 1996d770eb1..2869965cf9c 100644 --- a/samples/openapi3/client/petstore/typescript/builds/deno_object_params/configuration.ts +++ b/samples/openapi3/client/petstore/typescript/builds/deno_object_params/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers.ts"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth.ts"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/openapi3/client/petstore/typescript/builds/deno_object_params/types/ObservableAPI.ts b/samples/openapi3/client/petstore/typescript/builds/deno_object_params/types/ObservableAPI.ts index e2bc011b234..6a38fcfe63d 100644 --- a/samples/openapi3/client/petstore/typescript/builds/deno_object_params/types/ObservableAPI.ts +++ b/samples/openapi3/client/petstore/typescript/builds/deno_object_params/types/ObservableAPI.ts @@ -41,7 +41,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -76,7 +76,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -111,7 +111,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -145,7 +145,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -179,7 +179,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -213,7 +213,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -249,7 +249,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -287,7 +287,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -341,7 +341,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -374,7 +374,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -407,7 +407,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -441,7 +441,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -493,7 +493,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -527,7 +527,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -561,7 +561,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -595,7 +595,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -629,7 +629,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -664,7 +664,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -698,7 +698,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -732,7 +732,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/openapi3/client/petstore/typescript/builds/explode-query/configuration.ts b/samples/openapi3/client/petstore/typescript/builds/explode-query/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/openapi3/client/petstore/typescript/builds/explode-query/configuration.ts +++ b/samples/openapi3/client/petstore/typescript/builds/explode-query/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/openapi3/client/petstore/typescript/builds/explode-query/types/ObservableAPI.ts b/samples/openapi3/client/petstore/typescript/builds/explode-query/types/ObservableAPI.ts index 7e20b920403..e6627dbbe7a 100644 --- a/samples/openapi3/client/petstore/typescript/builds/explode-query/types/ObservableAPI.ts +++ b/samples/openapi3/client/petstore/typescript/builds/explode-query/types/ObservableAPI.ts @@ -82,7 +82,7 @@ export class ObservableAnotherFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -131,7 +131,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -178,7 +178,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -208,7 +208,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -241,7 +241,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -275,7 +275,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -307,7 +307,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -339,7 +339,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -371,7 +371,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -403,7 +403,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -435,7 +435,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -467,7 +467,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -499,7 +499,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -532,7 +532,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -579,7 +579,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -634,7 +634,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -681,7 +681,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -720,7 +720,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -755,7 +755,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -795,7 +795,7 @@ export class ObservableFakeApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -852,7 +852,7 @@ export class ObservableFakeClassnameTags123Api { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -904,7 +904,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -939,7 +939,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -974,7 +974,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1008,7 +1008,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1042,7 +1042,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1076,7 +1076,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1112,7 +1112,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1150,7 +1150,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1188,7 +1188,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1242,7 +1242,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1275,7 +1275,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1308,7 +1308,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1342,7 +1342,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1394,7 +1394,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1428,7 +1428,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1462,7 +1462,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1496,7 +1496,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1530,7 +1530,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1565,7 +1565,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1599,7 +1599,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -1633,7 +1633,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/openapi3/client/petstore/typescript/builds/inversify/configuration.ts b/samples/openapi3/client/petstore/typescript/builds/inversify/configuration.ts index 586313ff22e..7f1fad5c3e1 100644 --- a/samples/openapi3/client/petstore/typescript/builds/inversify/configuration.ts +++ b/samples/openapi3/client/petstore/typescript/builds/inversify/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,10 +97,7 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: Configuration): Configuration { - if (options) { - conf = options; - } - return conf; + return options || conf; } /** diff --git a/samples/openapi3/client/petstore/typescript/builds/inversify/types/ObservableAPI.ts b/samples/openapi3/client/petstore/typescript/builds/inversify/types/ObservableAPI.ts index 85b1058c73a..9317ecb7bef 100644 --- a/samples/openapi3/client/petstore/typescript/builds/inversify/types/ObservableAPI.ts +++ b/samples/openapi3/client/petstore/typescript/builds/inversify/types/ObservableAPI.ts @@ -39,14 +39,14 @@ export class ObservablePetApi { public addPetWithHttpInfo(pet: Pet, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.addPet(pet, _options); + const requestContextPromise = this.requestFactory.addPet(pet, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -74,14 +74,14 @@ export class ObservablePetApi { public deletePetWithHttpInfo(petId: number, apiKey?: string, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.deletePet(petId, apiKey, _options); + const requestContextPromise = this.requestFactory.deletePet(petId, apiKey, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -109,14 +109,14 @@ export class ObservablePetApi { public findPetsByStatusWithHttpInfo(status: Array<'available' | 'pending' | 'sold'>, _options?: Configuration): Observable>> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.findPetsByStatus(status, _options); + const requestContextPromise = this.requestFactory.findPetsByStatus(status, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -143,14 +143,14 @@ export class ObservablePetApi { public findPetsByTagsWithHttpInfo(tags: Array, _options?: Configuration): Observable>> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.findPetsByTags(tags, _options); + const requestContextPromise = this.requestFactory.findPetsByTags(tags, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -177,14 +177,14 @@ export class ObservablePetApi { public getPetByIdWithHttpInfo(petId: number, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.getPetById(petId, _options); + const requestContextPromise = this.requestFactory.getPetById(petId, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -211,14 +211,14 @@ export class ObservablePetApi { public updatePetWithHttpInfo(pet: Pet, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.updatePet(pet, _options); + const requestContextPromise = this.requestFactory.updatePet(pet, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -247,14 +247,14 @@ export class ObservablePetApi { public updatePetWithFormWithHttpInfo(petId: number, name?: string, status?: string, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.updatePetWithForm(petId, name, status, _options); + const requestContextPromise = this.requestFactory.updatePetWithForm(petId, name, status, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -285,14 +285,14 @@ export class ObservablePetApi { public uploadFileWithHttpInfo(petId: number, additionalMetadata?: string, file?: HttpFile, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.uploadFile(petId, additionalMetadata, file, _options); + const requestContextPromise = this.requestFactory.uploadFile(petId, additionalMetadata, file, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -342,14 +342,14 @@ export class ObservableStoreApi { public deleteOrderWithHttpInfo(orderId: string, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.deleteOrder(orderId, _options); + const requestContextPromise = this.requestFactory.deleteOrder(orderId, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -375,14 +375,14 @@ export class ObservableStoreApi { public getInventoryWithHttpInfo(_options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.getInventory(_options); + const requestContextPromise = this.requestFactory.getInventory(_config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -408,14 +408,14 @@ export class ObservableStoreApi { public getOrderByIdWithHttpInfo(orderId: number, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.getOrderById(orderId, _options); + const requestContextPromise = this.requestFactory.getOrderById(orderId, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -442,14 +442,14 @@ export class ObservableStoreApi { public placeOrderWithHttpInfo(order: Order, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.placeOrder(order, _options); + const requestContextPromise = this.requestFactory.placeOrder(order, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -497,14 +497,14 @@ export class ObservableUserApi { public createUserWithHttpInfo(user: User, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.createUser(user, _options); + const requestContextPromise = this.requestFactory.createUser(user, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -531,14 +531,14 @@ export class ObservableUserApi { public createUsersWithArrayInputWithHttpInfo(user: Array, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.createUsersWithArrayInput(user, _options); + const requestContextPromise = this.requestFactory.createUsersWithArrayInput(user, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -565,14 +565,14 @@ export class ObservableUserApi { public createUsersWithListInputWithHttpInfo(user: Array, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.createUsersWithListInput(user, _options); + const requestContextPromise = this.requestFactory.createUsersWithListInput(user, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -599,14 +599,14 @@ export class ObservableUserApi { public deleteUserWithHttpInfo(username: string, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.deleteUser(username, _options); + const requestContextPromise = this.requestFactory.deleteUser(username, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -633,14 +633,14 @@ export class ObservableUserApi { public getUserByNameWithHttpInfo(username: string, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.getUserByName(username, _options); + const requestContextPromise = this.requestFactory.getUserByName(username, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -668,14 +668,14 @@ export class ObservableUserApi { public loginUserWithHttpInfo(username: string, password: string, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.loginUser(username, password, _options); + const requestContextPromise = this.requestFactory.loginUser(username, password, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -702,14 +702,14 @@ export class ObservableUserApi { public logoutUserWithHttpInfo(_options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.logoutUser(_options); + const requestContextPromise = this.requestFactory.logoutUser(_config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -736,14 +736,14 @@ export class ObservableUserApi { public updateUserWithHttpInfo(username: string, user: User, _options?: Configuration): Observable> { const _config = mergeConfiguration(this.configuration, _options); - const requestContextPromise = this.requestFactory.updateUser(username, user, _options); + const requestContextPromise = this.requestFactory.updateUser(username, user, _config); // build promise chain let middlewarePreObservable = from(requestContextPromise); for (const middleware of _config.middleware) { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/openapi3/client/petstore/typescript/builds/jquery/configuration.ts b/samples/openapi3/client/petstore/typescript/builds/jquery/configuration.ts index ed54d874a86..85521458d94 100644 --- a/samples/openapi3/client/petstore/typescript/builds/jquery/configuration.ts +++ b/samples/openapi3/client/petstore/typescript/builds/jquery/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/openapi3/client/petstore/typescript/builds/jquery/types/ObservableAPI.ts b/samples/openapi3/client/petstore/typescript/builds/jquery/types/ObservableAPI.ts index 58459af26d4..0ccd300d0fc 100644 --- a/samples/openapi3/client/petstore/typescript/builds/jquery/types/ObservableAPI.ts +++ b/samples/openapi3/client/petstore/typescript/builds/jquery/types/ObservableAPI.ts @@ -41,7 +41,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -76,7 +76,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -111,7 +111,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -145,7 +145,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -179,7 +179,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -213,7 +213,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -249,7 +249,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -287,7 +287,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -341,7 +341,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -374,7 +374,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -407,7 +407,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -441,7 +441,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -493,7 +493,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -527,7 +527,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -561,7 +561,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -595,7 +595,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -629,7 +629,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -664,7 +664,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -698,7 +698,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -732,7 +732,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/openapi3/client/petstore/typescript/builds/nullable-enum/configuration.ts b/samples/openapi3/client/petstore/typescript/builds/nullable-enum/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/openapi3/client/petstore/typescript/builds/nullable-enum/configuration.ts +++ b/samples/openapi3/client/petstore/typescript/builds/nullable-enum/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/openapi3/client/petstore/typescript/builds/nullable-enum/types/ObservableAPI.ts b/samples/openapi3/client/petstore/typescript/builds/nullable-enum/types/ObservableAPI.ts index 54132586b76..8c4dae1fb56 100644 --- a/samples/openapi3/client/petstore/typescript/builds/nullable-enum/types/ObservableAPI.ts +++ b/samples/openapi3/client/petstore/typescript/builds/nullable-enum/types/ObservableAPI.ts @@ -33,7 +33,7 @@ export class ObservableDefaultApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/openapi3/client/petstore/typescript/builds/object_params/configuration.ts b/samples/openapi3/client/petstore/typescript/builds/object_params/configuration.ts index 483dc5e5413..4e654728905 100644 --- a/samples/openapi3/client/petstore/typescript/builds/object_params/configuration.ts +++ b/samples/openapi3/client/petstore/typescript/builds/object_params/configuration.ts @@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers"; import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth"; export interface Configuration { - readonly baseServer: BaseServerConfiguration; - readonly httpApi: HttpLibrary; - readonly middleware: M[]; - readonly authMethods: AuthMethods; + readonly baseServer: BaseServerConfiguration; + readonly httpApi: HttpLibrary; + readonly middleware: M[]; + readonly authMethods: AuthMethods; } // Additional option specific to middleware merge strategy export interface MiddlewareMergeOptions { - // default is `'replace'` for backwards compatibility - middlewareMergeStrategy?: 'replace' | 'append' | 'prepend'; + // default is `"replace"` for backwards compatibility + middlewareMergeStrategy?: "replace" | "append" | "prepend"; } // Unify configuration options using Partial plus extra merge strategy @@ -97,35 +97,31 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu * Merge configuration options into a configuration. */ export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration { - let allMiddleware: Middleware[] = []; - if (options && options.middleware) { - const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior - // call-time middleware provided - const calltimeMiddleware: Middleware[] = options.middleware; + if (!options) { + return conf; + } + return { + baseServer: options.baseServer || conf.baseServer, + httpApi: options.httpApi || conf.httpApi, + authMethods: options.authMethods || conf.authMethods, + middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy), + }; +} - switch(middlewareMergeStrategy) { +function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") { + if (!calltimeMiddleware) { + return staticMiddleware; + } + switch(strategy) { case "append": - allMiddleware = conf.middleware.concat(calltimeMiddleware); - break; + return staticMiddleware.concat(calltimeMiddleware); case "prepend": - allMiddleware = calltimeMiddleware.concat(conf.middleware) - break; + return calltimeMiddleware.concat(staticMiddleware) case "replace": - allMiddleware = calltimeMiddleware - break; + return calltimeMiddleware default: - throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`); - } + throw new Error(`Unrecognized middleware merge strategy '${strategy}'`) } - if (options) { - conf = { - baseServer: options.baseServer || conf.baseServer, - httpApi: options.httpApi || conf.httpApi, - authMethods: options.authMethods || conf.authMethods, - middleware: allMiddleware || conf.middleware - }; - } - return conf; } /** diff --git a/samples/openapi3/client/petstore/typescript/builds/object_params/types/ObservableAPI.ts b/samples/openapi3/client/petstore/typescript/builds/object_params/types/ObservableAPI.ts index 58459af26d4..0ccd300d0fc 100644 --- a/samples/openapi3/client/petstore/typescript/builds/object_params/types/ObservableAPI.ts +++ b/samples/openapi3/client/petstore/typescript/builds/object_params/types/ObservableAPI.ts @@ -41,7 +41,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -76,7 +76,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -111,7 +111,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -145,7 +145,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -179,7 +179,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -213,7 +213,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -249,7 +249,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -287,7 +287,7 @@ export class ObservablePetApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -341,7 +341,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -374,7 +374,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -407,7 +407,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -441,7 +441,7 @@ export class ObservableStoreApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -493,7 +493,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -527,7 +527,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -561,7 +561,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -595,7 +595,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -629,7 +629,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -664,7 +664,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -698,7 +698,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { @@ -732,7 +732,7 @@ export class ObservableUserApi { middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx))); } - return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))). + return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))). pipe(mergeMap((response: ResponseContext) => { let middlewarePostObservable = of(response); for (const middleware of _config.middleware.reverse()) { diff --git a/samples/openapi3/client/petstore/typescript/tests/default/test/api/PetApi.test.ts b/samples/openapi3/client/petstore/typescript/tests/default/test/api/PetApi.test.ts index ab402abc816..c8137a5312e 100644 --- a/samples/openapi3/client/petstore/typescript/tests/default/test/api/PetApi.test.ts +++ b/samples/openapi3/client/petstore/typescript/tests/default/test/api/PetApi.test.ts @@ -1,5 +1,5 @@ import * as petstore from 'ts-petstore-client' -import { Middleware, RequestContext, ResponseContext } from 'ts-petstore-client' +import { Middleware, RequestContext, ResponseContext, wrapHttpLibrary } from 'ts-petstore-client' import { expect } from "chai"; import * as fs from 'fs'; @@ -103,6 +103,24 @@ describe("PetApi", () => { expect(CallOrder).deep.equal(['base-pre', 'base-post']) }) + it("should keep middleware when options are given without middleware", async () => { + let { CallOrder, BaseMiddleware, CalltimeMiddleware } = MiddlewareCallTracker() + const configuration = petstore.createConfiguration({ promiseMiddleware: [BaseMiddleware] }); + const petApi = new petstore.PetApi(configuration); + const callTimeAppendedRightPet = await petApi.getPetById(pet.id, {}); + expect(callTimeAppendedRightPet).to.deep.equal(pet); + expect(CallOrder).deep.equal(['base-pre', 'base-post']) + }) + + it("should replace middleware when options contain an empty array of middlewares", async () => { + let { CallOrder, BaseMiddleware, CalltimeMiddleware } = MiddlewareCallTracker() + const configuration = petstore.createConfiguration({ promiseMiddleware: [BaseMiddleware] }); + const petApi = new petstore.PetApi(configuration); + const callTimeAppendedRightPet = await petApi.getPetById(pet.id, { middleware: [] }); + expect(callTimeAppendedRightPet).to.deep.equal(pet); + expect(CallOrder).deep.equal([]) + }) + it("replace Middleware call order", async () => { let { CallOrder, BaseMiddleware, CalltimeMiddleware } = MiddlewareCallTracker() const configuration = petstore.createConfiguration({ promiseMiddleware: [BaseMiddleware] }) @@ -140,6 +158,31 @@ describe("PetApi", () => { expect(callTimeAppendedRightPet).to.deep.equal(pet); }) + it("should override http api from option", async () => { + const configuration = petstore.createConfiguration(); + const petApi = new petstore.PetApi(configuration); + + let overriddenCalls = 0; + const mockHttpLibrary = { + async send(): Promise { + overriddenCalls++; + return new ResponseContext(200, { + "content-type": "application/json", + }, { + async text() { + return "{}"; + }, + async binary() { + throw new Error("Unexpected usage of mock body as binary."); + } + }); + } + }; + + await petApi.getPetById(pet.id, { httpApi: wrapHttpLibrary(mockHttpLibrary) }); + expect(overriddenCalls).to.equal(1); + }) + it("deletePet", async () => { await petApi.deletePet(pet.id); let deletedPet;