[typescript] Use static middleware when calltime options exist but specify no middleware (#20985)

* Keep static middleware when options contain no middleware field

* Regenerate samples

* Fix indentation and quotes

* Extract middleware merge logic into function

* Regenerate samples

* Simplify extracted functions

* Regenerate samples

* Fix: Pass static config when no options are given for inversify

* Fix: Allow overriding http api with options

* Regenerate samples

* Use default parameter for default middlware merge strategy

* Throw exception for failed match within switch block
This commit is contained in:
Bodo Graumann 2025-04-01 20:11:07 +02:00 committed by GitHub
parent 7881152dc8
commit 8e329feb6a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
33 changed files with 721 additions and 748 deletions

View File

@ -12,16 +12,16 @@ import { BaseServerConfiguration, server1 } from "./servers{{importFileExtension
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth{{importFileExtension}}";
export interface Configuration<M = Middleware> {
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}}

View File

@ -65,14 +65,14 @@ export class Observable{{classname}} {
public {{nickname}}WithHttpInfo({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}_options?: Configuration{{^useInversify}}Options{{/useInversify}}): Observable<HttpInfo<{{{returnType}}}{{^returnType}}void{{/returnType}}>> {
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<RequestContext>(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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers.ts";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth.ts";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers.ts";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth.ts";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -39,14 +39,14 @@ export class ObservablePetApi {
public addPetWithHttpInfo(pet: Pet, _options?: Configuration): Observable<HttpInfo<Pet>> {
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<RequestContext>(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<HttpInfo<void>> {
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<RequestContext>(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<HttpInfo<Array<Pet>>> {
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<RequestContext>(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<string>, _options?: Configuration): Observable<HttpInfo<Array<Pet>>> {
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<RequestContext>(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<HttpInfo<Pet>> {
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<RequestContext>(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<HttpInfo<Pet>> {
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<RequestContext>(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<HttpInfo<void>> {
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<RequestContext>(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<HttpInfo<ApiResponse>> {
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<RequestContext>(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<HttpInfo<void>> {
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<RequestContext>(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<HttpInfo<{ [key: string]: number; }>> {
const _config = mergeConfiguration(this.configuration, _options);
const requestContextPromise = this.requestFactory.getInventory(_options);
const requestContextPromise = this.requestFactory.getInventory(_config);
// build promise chain
let middlewarePreObservable = from<RequestContext>(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<HttpInfo<Order>> {
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<RequestContext>(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<HttpInfo<Order>> {
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<RequestContext>(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<HttpInfo<void>> {
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<RequestContext>(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<User>, _options?: Configuration): Observable<HttpInfo<void>> {
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<RequestContext>(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<User>, _options?: Configuration): Observable<HttpInfo<void>> {
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<RequestContext>(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<HttpInfo<void>> {
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<RequestContext>(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<HttpInfo<User>> {
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<RequestContext>(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<HttpInfo<string>> {
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<RequestContext>(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<HttpInfo<void>> {
const _config = mergeConfiguration(this.configuration, _options);
const requestContextPromise = this.requestFactory.logoutUser(_options);
const requestContextPromise = this.requestFactory.logoutUser(_config);
// build promise chain
let middlewarePreObservable = from<RequestContext>(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<HttpInfo<void>> {
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<RequestContext>(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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
export interface Configuration<M = Middleware> {
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;
}
/**

View File

@ -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()) {

View File

@ -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<ResponseContext> {
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;