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}}";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth{{importFileExtension}}";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// Unify configuration options using Partial plus extra merge strategy
|
||||||
@ -105,43 +105,36 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu
|
|||||||
*/
|
*/
|
||||||
{{#useInversify}}
|
{{#useInversify}}
|
||||||
export function mergeConfiguration(conf: Configuration, options?: Configuration): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: Configuration): Configuration {
|
||||||
if (options) {
|
return options || conf;
|
||||||
conf = options;
|
|
||||||
}
|
|
||||||
return conf;
|
|
||||||
}
|
}
|
||||||
{{/useInversify}}
|
{{/useInversify}}
|
||||||
{{^useInversify}}
|
{{^useInversify}}
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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}}
|
{{/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}}>> {
|
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 _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
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -78,7 +78,7 @@ export class ObservableAuthApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -128,7 +128,7 @@ export class ObservableBodyApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -161,7 +161,7 @@ export class ObservableBodyApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -195,7 +195,7 @@ export class ObservableBodyApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -229,7 +229,7 @@ export class ObservableBodyApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -263,7 +263,7 @@ export class ObservableBodyApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -297,7 +297,7 @@ export class ObservableBodyApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -331,7 +331,7 @@ export class ObservableBodyApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -365,7 +365,7 @@ export class ObservableBodyApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -399,7 +399,7 @@ export class ObservableBodyApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -433,7 +433,7 @@ export class ObservableBodyApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -487,7 +487,7 @@ export class ObservableFormApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -523,7 +523,7 @@ export class ObservableFormApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -562,7 +562,7 @@ export class ObservableFormApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -623,7 +623,7 @@ export class ObservableHeaderApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -682,7 +682,7 @@ export class ObservablePathApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -738,7 +738,7 @@ export class ObservableQueryApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -775,7 +775,7 @@ export class ObservableQueryApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -813,7 +813,7 @@ export class ObservableQueryApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -849,7 +849,7 @@ export class ObservableQueryApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -883,7 +883,7 @@ export class ObservableQueryApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -917,7 +917,7 @@ export class ObservableQueryApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -951,7 +951,7 @@ export class ObservableQueryApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -985,7 +985,7 @@ export class ObservableQueryApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1019,7 +1019,7 @@ export class ObservableQueryApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1053,7 +1053,7 @@ export class ObservableQueryApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -62,7 +62,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -90,7 +90,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -118,7 +118,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -146,7 +146,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -174,7 +174,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -202,7 +202,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -230,7 +230,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -258,7 +258,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -286,7 +286,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -314,7 +314,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -342,7 +342,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -370,7 +370,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -398,7 +398,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -426,7 +426,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -454,7 +454,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -483,7 +483,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -513,7 +513,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -543,7 +543,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -573,7 +573,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -603,7 +603,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -633,7 +633,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -663,7 +663,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -693,7 +693,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -723,7 +723,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -753,7 +753,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -783,7 +783,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -813,7 +813,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -843,7 +843,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -873,7 +873,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -903,7 +903,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -933,7 +933,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -76,7 +76,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -111,7 +111,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -145,7 +145,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -179,7 +179,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -213,7 +213,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -249,7 +249,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -287,7 +287,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -341,7 +341,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -374,7 +374,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -407,7 +407,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -441,7 +441,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -493,7 +493,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -527,7 +527,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -561,7 +561,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -595,7 +595,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -629,7 +629,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -664,7 +664,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -698,7 +698,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -732,7 +732,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -70,7 +70,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -100,7 +100,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -76,7 +76,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -111,7 +111,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -145,7 +145,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -179,7 +179,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -213,7 +213,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -249,7 +249,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -287,7 +287,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -341,7 +341,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -374,7 +374,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -407,7 +407,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -441,7 +441,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -493,7 +493,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -527,7 +527,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -561,7 +561,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -595,7 +595,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -629,7 +629,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -664,7 +664,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -698,7 +698,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -732,7 +732,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
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";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth.ts";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -76,7 +76,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -111,7 +111,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -145,7 +145,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -179,7 +179,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -213,7 +213,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -249,7 +249,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -287,7 +287,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -341,7 +341,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -374,7 +374,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -407,7 +407,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -441,7 +441,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -493,7 +493,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -527,7 +527,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -561,7 +561,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -595,7 +595,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -629,7 +629,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -664,7 +664,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -698,7 +698,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -732,7 +732,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
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";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth.ts";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -76,7 +76,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -111,7 +111,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -145,7 +145,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -179,7 +179,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -213,7 +213,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -249,7 +249,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -287,7 +287,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -341,7 +341,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -374,7 +374,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -407,7 +407,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -441,7 +441,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -493,7 +493,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -527,7 +527,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -561,7 +561,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -595,7 +595,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -629,7 +629,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -664,7 +664,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -698,7 +698,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -732,7 +732,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -131,7 +131,7 @@ export class ObservableDefaultApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -178,7 +178,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -208,7 +208,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -241,7 +241,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -275,7 +275,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -307,7 +307,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -339,7 +339,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -371,7 +371,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -403,7 +403,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -435,7 +435,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -467,7 +467,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -499,7 +499,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -532,7 +532,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -579,7 +579,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -634,7 +634,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -681,7 +681,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -720,7 +720,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -755,7 +755,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -795,7 +795,7 @@ export class ObservableFakeApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -852,7 +852,7 @@ export class ObservableFakeClassnameTags123Api {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -904,7 +904,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -939,7 +939,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -974,7 +974,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1008,7 +1008,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1042,7 +1042,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1076,7 +1076,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1112,7 +1112,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1150,7 +1150,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1188,7 +1188,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1242,7 +1242,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1275,7 +1275,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1308,7 +1308,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1342,7 +1342,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1394,7 +1394,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1428,7 +1428,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1462,7 +1462,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1496,7 +1496,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1530,7 +1530,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1565,7 +1565,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1599,7 +1599,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -1633,7 +1633,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: Configuration): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: Configuration): Configuration {
|
||||||
if (options) {
|
return options || conf;
|
||||||
conf = options;
|
|
||||||
}
|
|
||||||
return conf;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -39,14 +39,14 @@ export class ObservablePetApi {
|
|||||||
public addPetWithHttpInfo(pet: Pet, _options?: Configuration): Observable<HttpInfo<Pet>> {
|
public addPetWithHttpInfo(pet: Pet, _options?: Configuration): Observable<HttpInfo<Pet>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.addPet(pet, _options);
|
const requestContextPromise = this.requestFactory.addPet(pet, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
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>> {
|
public deletePetWithHttpInfo(petId: number, apiKey?: string, _options?: Configuration): Observable<HttpInfo<void>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
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
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
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>>> {
|
public findPetsByStatusWithHttpInfo(status: Array<'available' | 'pending' | 'sold'>, _options?: Configuration): Observable<HttpInfo<Array<Pet>>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.findPetsByStatus(status, _options);
|
const requestContextPromise = this.requestFactory.findPetsByStatus(status, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
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>>> {
|
public findPetsByTagsWithHttpInfo(tags: Array<string>, _options?: Configuration): Observable<HttpInfo<Array<Pet>>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.findPetsByTags(tags, _options);
|
const requestContextPromise = this.requestFactory.findPetsByTags(tags, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -177,14 +177,14 @@ export class ObservablePetApi {
|
|||||||
public getPetByIdWithHttpInfo(petId: number, _options?: Configuration): Observable<HttpInfo<Pet>> {
|
public getPetByIdWithHttpInfo(petId: number, _options?: Configuration): Observable<HttpInfo<Pet>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.getPetById(petId, _options);
|
const requestContextPromise = this.requestFactory.getPetById(petId, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -211,14 +211,14 @@ export class ObservablePetApi {
|
|||||||
public updatePetWithHttpInfo(pet: Pet, _options?: Configuration): Observable<HttpInfo<Pet>> {
|
public updatePetWithHttpInfo(pet: Pet, _options?: Configuration): Observable<HttpInfo<Pet>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.updatePet(pet, _options);
|
const requestContextPromise = this.requestFactory.updatePet(pet, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
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>> {
|
public updatePetWithFormWithHttpInfo(petId: number, name?: string, status?: string, _options?: Configuration): Observable<HttpInfo<void>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
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
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
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>> {
|
public uploadFileWithHttpInfo(petId: number, additionalMetadata?: string, file?: HttpFile, _options?: Configuration): Observable<HttpInfo<ApiResponse>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
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
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -342,14 +342,14 @@ export class ObservableStoreApi {
|
|||||||
public deleteOrderWithHttpInfo(orderId: string, _options?: Configuration): Observable<HttpInfo<void>> {
|
public deleteOrderWithHttpInfo(orderId: string, _options?: Configuration): Observable<HttpInfo<void>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.deleteOrder(orderId, _options);
|
const requestContextPromise = this.requestFactory.deleteOrder(orderId, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -375,14 +375,14 @@ export class ObservableStoreApi {
|
|||||||
public getInventoryWithHttpInfo(_options?: Configuration): Observable<HttpInfo<{ [key: string]: number; }>> {
|
public getInventoryWithHttpInfo(_options?: Configuration): Observable<HttpInfo<{ [key: string]: number; }>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.getInventory(_options);
|
const requestContextPromise = this.requestFactory.getInventory(_config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -408,14 +408,14 @@ export class ObservableStoreApi {
|
|||||||
public getOrderByIdWithHttpInfo(orderId: number, _options?: Configuration): Observable<HttpInfo<Order>> {
|
public getOrderByIdWithHttpInfo(orderId: number, _options?: Configuration): Observable<HttpInfo<Order>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.getOrderById(orderId, _options);
|
const requestContextPromise = this.requestFactory.getOrderById(orderId, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -442,14 +442,14 @@ export class ObservableStoreApi {
|
|||||||
public placeOrderWithHttpInfo(order: Order, _options?: Configuration): Observable<HttpInfo<Order>> {
|
public placeOrderWithHttpInfo(order: Order, _options?: Configuration): Observable<HttpInfo<Order>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.placeOrder(order, _options);
|
const requestContextPromise = this.requestFactory.placeOrder(order, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -497,14 +497,14 @@ export class ObservableUserApi {
|
|||||||
public createUserWithHttpInfo(user: User, _options?: Configuration): Observable<HttpInfo<void>> {
|
public createUserWithHttpInfo(user: User, _options?: Configuration): Observable<HttpInfo<void>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.createUser(user, _options);
|
const requestContextPromise = this.requestFactory.createUser(user, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -531,14 +531,14 @@ export class ObservableUserApi {
|
|||||||
public createUsersWithArrayInputWithHttpInfo(user: Array<User>, _options?: Configuration): Observable<HttpInfo<void>> {
|
public createUsersWithArrayInputWithHttpInfo(user: Array<User>, _options?: Configuration): Observable<HttpInfo<void>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.createUsersWithArrayInput(user, _options);
|
const requestContextPromise = this.requestFactory.createUsersWithArrayInput(user, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -565,14 +565,14 @@ export class ObservableUserApi {
|
|||||||
public createUsersWithListInputWithHttpInfo(user: Array<User>, _options?: Configuration): Observable<HttpInfo<void>> {
|
public createUsersWithListInputWithHttpInfo(user: Array<User>, _options?: Configuration): Observable<HttpInfo<void>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.createUsersWithListInput(user, _options);
|
const requestContextPromise = this.requestFactory.createUsersWithListInput(user, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -599,14 +599,14 @@ export class ObservableUserApi {
|
|||||||
public deleteUserWithHttpInfo(username: string, _options?: Configuration): Observable<HttpInfo<void>> {
|
public deleteUserWithHttpInfo(username: string, _options?: Configuration): Observable<HttpInfo<void>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.deleteUser(username, _options);
|
const requestContextPromise = this.requestFactory.deleteUser(username, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -633,14 +633,14 @@ export class ObservableUserApi {
|
|||||||
public getUserByNameWithHttpInfo(username: string, _options?: Configuration): Observable<HttpInfo<User>> {
|
public getUserByNameWithHttpInfo(username: string, _options?: Configuration): Observable<HttpInfo<User>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.getUserByName(username, _options);
|
const requestContextPromise = this.requestFactory.getUserByName(username, _config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
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>> {
|
public loginUserWithHttpInfo(username: string, password: string, _options?: Configuration): Observable<HttpInfo<string>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
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
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -702,14 +702,14 @@ export class ObservableUserApi {
|
|||||||
public logoutUserWithHttpInfo(_options?: Configuration): Observable<HttpInfo<void>> {
|
public logoutUserWithHttpInfo(_options?: Configuration): Observable<HttpInfo<void>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
const _config = mergeConfiguration(this.configuration, _options);
|
||||||
|
|
||||||
const requestContextPromise = this.requestFactory.logoutUser(_options);
|
const requestContextPromise = this.requestFactory.logoutUser(_config);
|
||||||
// build promise chain
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
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>> {
|
public updateUserWithHttpInfo(username: string, user: User, _options?: Configuration): Observable<HttpInfo<void>> {
|
||||||
const _config = mergeConfiguration(this.configuration, _options);
|
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
|
// build promise chain
|
||||||
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
|
||||||
for (const middleware of _config.middleware) {
|
for (const middleware of _config.middleware) {
|
||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -76,7 +76,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -111,7 +111,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -145,7 +145,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -179,7 +179,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -213,7 +213,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -249,7 +249,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -287,7 +287,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -341,7 +341,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -374,7 +374,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -407,7 +407,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -441,7 +441,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -493,7 +493,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -527,7 +527,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -561,7 +561,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -595,7 +595,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -629,7 +629,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -664,7 +664,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -698,7 +698,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -732,7 +732,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -5,16 +5,16 @@ import { BaseServerConfiguration, server1 } from "./servers";
|
|||||||
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth";
|
||||||
|
|
||||||
export interface Configuration<M = Middleware> {
|
export interface Configuration<M = Middleware> {
|
||||||
readonly baseServer: BaseServerConfiguration;
|
readonly baseServer: BaseServerConfiguration;
|
||||||
readonly httpApi: HttpLibrary;
|
readonly httpApi: HttpLibrary;
|
||||||
readonly middleware: M[];
|
readonly middleware: M[];
|
||||||
readonly authMethods: AuthMethods;
|
readonly authMethods: AuthMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Additional option specific to middleware merge strategy
|
// Additional option specific to middleware merge strategy
|
||||||
export interface MiddlewareMergeOptions {
|
export interface MiddlewareMergeOptions {
|
||||||
// default is `'replace'` for backwards compatibility
|
// default is `"replace"` for backwards compatibility
|
||||||
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
|
middlewareMergeStrategy?: "replace" | "append" | "prepend";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unify configuration options using Partial plus extra merge strategy
|
// 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.
|
* Merge configuration options into a configuration.
|
||||||
*/
|
*/
|
||||||
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
|
||||||
let allMiddleware: Middleware[] = [];
|
if (!options) {
|
||||||
if (options && options.middleware) {
|
return conf;
|
||||||
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
|
}
|
||||||
// call-time middleware provided
|
return {
|
||||||
const calltimeMiddleware: Middleware[] = options.middleware;
|
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":
|
case "append":
|
||||||
allMiddleware = conf.middleware.concat(calltimeMiddleware);
|
return staticMiddleware.concat(calltimeMiddleware);
|
||||||
break;
|
|
||||||
case "prepend":
|
case "prepend":
|
||||||
allMiddleware = calltimeMiddleware.concat(conf.middleware)
|
return calltimeMiddleware.concat(staticMiddleware)
|
||||||
break;
|
|
||||||
case "replace":
|
case "replace":
|
||||||
allMiddleware = calltimeMiddleware
|
return calltimeMiddleware
|
||||||
break;
|
|
||||||
default:
|
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)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -76,7 +76,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -111,7 +111,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -145,7 +145,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -179,7 +179,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -213,7 +213,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -249,7 +249,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -287,7 +287,7 @@ export class ObservablePetApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -341,7 +341,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -374,7 +374,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -407,7 +407,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -441,7 +441,7 @@ export class ObservableStoreApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -493,7 +493,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -527,7 +527,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -561,7 +561,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -595,7 +595,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -629,7 +629,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -664,7 +664,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -698,7 +698,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
@ -732,7 +732,7 @@ export class ObservableUserApi {
|
|||||||
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
|
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
|
||||||
pipe(mergeMap((response: ResponseContext) => {
|
pipe(mergeMap((response: ResponseContext) => {
|
||||||
let middlewarePostObservable = of(response);
|
let middlewarePostObservable = of(response);
|
||||||
for (const middleware of _config.middleware.reverse()) {
|
for (const middleware of _config.middleware.reverse()) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import * as petstore from 'ts-petstore-client'
|
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 { expect } from "chai";
|
||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
@ -103,6 +103,24 @@ describe("PetApi", () => {
|
|||||||
expect(CallOrder).deep.equal(['base-pre', 'base-post'])
|
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 () => {
|
it("replace Middleware call order", async () => {
|
||||||
let { CallOrder, BaseMiddleware, CalltimeMiddleware } = MiddlewareCallTracker()
|
let { CallOrder, BaseMiddleware, CalltimeMiddleware } = MiddlewareCallTracker()
|
||||||
const configuration = petstore.createConfiguration({ promiseMiddleware: [BaseMiddleware] })
|
const configuration = petstore.createConfiguration({ promiseMiddleware: [BaseMiddleware] })
|
||||||
@ -140,6 +158,31 @@ describe("PetApi", () => {
|
|||||||
expect(callTimeAppendedRightPet).to.deep.equal(pet);
|
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 () => {
|
it("deletePet", async () => {
|
||||||
await petApi.deletePet(pet.id);
|
await petApi.deletePet(pet.id);
|
||||||
let deletedPet;
|
let deletedPet;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user