Skip to content

Commit 843f813

Browse files
committed
Extract middleware merge logic into function
1 parent 5b1f719 commit 843f813

1 file changed

Lines changed: 20 additions & 15 deletions

File tree

modules/openapi-generator/src/main/resources/typescript/configuration.mustache

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -113,18 +113,31 @@ export function mergeConfiguration(conf: Configuration, options?: Configuration)
113113
{{/useInversify}}
114114
{{^useInversify}}
115115
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
116-
let allMiddleware: Middleware[] = conf.middleware;
117-
if (options && options.middleware) {
118-
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
116+
let allMiddleware: Middleware[] = mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy);
117+
if (options) {
118+
conf = {
119+
baseServer: options.baseServer || conf.baseServer,
120+
httpApi: options.httpApi || conf.httpApi,
121+
authMethods: options.authMethods || conf.authMethods,
122+
middleware: allMiddleware,
123+
};
124+
}
125+
return conf;
126+
}
127+
128+
function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy?: "append" | "prepend" | "replace") {
129+
let allMiddleware: Middleware[] = staticMiddleware;
130+
if (calltimeMiddleware) {
131+
const middlewareMergeStrategy = strategy || "replace" // default to replace behavior
119132
// call-time middleware provided
120-
const calltimeMiddleware: Middleware[] = options.middleware;
133+
const calltimeMiddleware: Middleware[] = calltimeMiddleware;
121134
122135
switch(middlewareMergeStrategy) {
123136
case "append":
124-
allMiddleware = conf.middleware.concat(calltimeMiddleware);
137+
allMiddleware = staticMiddleware.concat(calltimeMiddleware);
125138
break;
126139
case "prepend":
127-
allMiddleware = calltimeMiddleware.concat(conf.middleware)
140+
allMiddleware = calltimeMiddleware.concat(staticMiddleware)
128141
break;
129142
case "replace":
130143
allMiddleware = calltimeMiddleware
@@ -133,15 +146,7 @@ export function mergeConfiguration(conf: Configuration, options?: ConfigurationO
133146
throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);
134147
}
135148
}
136-
if (options) {
137-
conf = {
138-
baseServer: options.baseServer || conf.baseServer,
139-
httpApi: options.httpApi || conf.httpApi,
140-
authMethods: options.authMethods || conf.authMethods,
141-
middleware: allMiddleware,
142-
};
143-
}
144-
return conf;
149+
return allMiddleware;
145150
}
146151
{{/useInversify}}
147152

0 commit comments

Comments
 (0)