Skip to content

Commit

Permalink
[FEATURE] Custom Middleware Extensibility: Allow multiple definitions…
Browse files Browse the repository at this point in the history
… of the same custom middleware

Similar to the implementation for custom tasks:
https://github.com/SAP/ui5-builder/blob/d60c67dafc6d96a8345da2004972cd4b839eece6/lib/types/AbstractBuilder.js#L81-L89

Resolves #222
  • Loading branch information
RandomByte committed Oct 10, 2019
1 parent 1188029 commit a3d516b
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions lib/middleware/MiddlewareManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,12 +154,17 @@ class MiddlewareManager {
`defines neither a "beforeMiddleware" nor an "afterMiddleware" parameter. One must be defined.`);
}

let middlewareName = middlewareDef.name;
if (this.middleware[middlewareDef.name]) {
// Middleware is already known
throw new Error(`Failed to add custom middleware ${middlewareDef.name}. ` +
`A middleware with the same name is already known.`);
// => add a suffix to allow for multiple configurations of the same middleware
let suffixCounter = 0;
while (this.middleware[middlewareName]) {
suffixCounter++; // Start at 1
middlewareName = `${middlewareDef.name}--${suffixCounter}`;
}
}
await this.addMiddleware(middlewareDef.name, {
await this.addMiddleware(middlewareName, {
wrapperCallback: (middleware) => {
return ({resources}) => {
const options = {
Expand Down

0 comments on commit a3d516b

Please sign in to comment.