forked from loafle/openapi-generator-original
[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:
parent
7881152dc8
commit
8e329feb6a
@ -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}}
|
||||
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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()) {
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user