1- const middlewareRepository = require ( "./middlewareRepository" ) ;
2- const MiddlewareUtil = require ( "./MiddlewareUtil" ) ;
1+ import middlewareRepository from "./middlewareRepository.js" ;
2+ import MiddlewareUtil from "./MiddlewareUtil.js" ;
33const hasOwn = Function . prototype . call . bind ( Object . prototype . hasOwnProperty ) ;
44
55/**
6- *
7- * @typedef {object } middlewareResources
8- * @property {module: @ui5/fs.AbstractReader } all Reader or Collection to read resources of the
6+ * @private
7+ * @typedef {object } MiddlewareResources
8+ * @property {@ui5/fs.AbstractReader } all Reader or Collection to read resources of the
99 * root project and its dependencies
10- * @property {module: @ui5/fs.AbstractReader } rootProject Reader or Collection to read resources of
10+ * @property {@ui5/fs.AbstractReader } rootProject Reader or Collection to read resources of
1111 * the project the server is started in
12+ * @memberof @ui 5/server/internal/MiddlewareManager
1213 */
1314
1415/**
16+ * The MiddlewareManager
1517 *
16- *
17- * @memberof module:@ui5/server.middleware
18+ * @private
19+ * @class
20+ * @alias @ui 5/server/internal/MiddlewareManager
1821 */
1922class MiddlewareManager {
2023 constructor ( { graph, resources, options = {
@@ -33,6 +36,14 @@ class MiddlewareManager {
3336 this . middlewareUtil = new MiddlewareUtil ( ) ;
3437 }
3538
39+ /**
40+ * Applies the middleware to
41+ *
42+ * @private
43+ * @param {object } app The express application object
44+ * @returns {Promise<Array<undefined>> } Promise resolving to an Array with a length of the number
45+ * of added middlewares. The entries of the Array have a value of <code>undefined</code>.
46+ */
3647 async applyMiddleware ( app ) {
3748 await this . addStandardMiddleware ( ) ;
3849 await this . addCustomMiddleware ( ) ;
@@ -43,6 +54,18 @@ class MiddlewareManager {
4354 } ) ;
4455 }
4556
57+ /**
58+ * Adds the given middleware configuration
59+ *
60+ * @private
61+ * @param {string } configuredMiddlewareName The name of the middleware
62+ * @param {object } [options] The Options of the middleware
63+ * @param {object } [options.customMiddleware] The custom middleware
64+ * @param {Function } [options.wrapperCallback] Callback called when middleware is called
65+ * @param {string } [options.mountPath="/"] The path hosting the middleware
66+ * @param {string } [options.beforeMiddleware] The name of the middleware called before the added middleware
67+ * @param {string } [options.afterMiddleware] The name of the middleware called after the added middleware
68+ */
4669 async addMiddleware ( configuredMiddlewareName , {
4770 customMiddleware, wrapperCallback, mountPath = "/" ,
4871 beforeMiddleware, afterMiddleware
@@ -51,7 +74,7 @@ class MiddlewareManager {
5174 if ( customMiddleware ) {
5275 middlewareCallback = customMiddleware ;
5376 } else {
54- const middlewareInfo = middlewareRepository . getMiddleware ( configuredMiddlewareName ) ;
77+ const middlewareInfo = await middlewareRepository . getMiddleware ( configuredMiddlewareName ) ;
5578 if ( wrapperCallback ) {
5679 middlewareCallback = wrapperCallback ( middlewareInfo ) ;
5780 } else {
@@ -98,6 +121,12 @@ class MiddlewareManager {
98121 } ;
99122 }
100123
124+ /**
125+ * Adds all registered standard middlewares
126+ *
127+ * @private
128+ * @returns {Promise } Resolving to <code>undefined</code> once all standard middlewares are added
129+ */
101130 async addStandardMiddleware ( ) {
102131 await this . addMiddleware ( "csp" , {
103132 wrapperCallback : ( { middleware : cspModule } ) => {
@@ -214,6 +243,12 @@ class MiddlewareManager {
214243 } ) ;
215244 }
216245
246+ /**
247+ * Adds all registered custom middlewares
248+ *
249+ * @private
250+ * @returns {Promise } Resolving to <code>undefined</code> once all custom middlewares are added
251+ */
217252 async addCustomMiddleware ( ) {
218253 const project = this . graph . getRoot ( ) ;
219254 const projectCustomMiddleware = project . getCustomMiddleware ( ) ;
@@ -238,7 +273,7 @@ class MiddlewareManager {
238273 `defines neither a "beforeMiddleware" nor an "afterMiddleware" parameter. One must be defined.` ) ;
239274 }
240275 await this . addMiddleware ( middlewareDef . name , {
241- customMiddleware : ( { resources, middlewareUtil} ) => {
276+ customMiddleware : async ( { resources, middlewareUtil} ) => {
242277 const customMiddleware = this . graph . getExtension ( middlewareDef . name ) ;
243278 const specVersion = customMiddleware . getSpecVersion ( ) ;
244279 const options = {
@@ -254,7 +289,7 @@ class MiddlewareManager {
254289 // Supply interface to MiddlewareUtil instance starting with specVersion 2.0
255290 params . middlewareUtil = middlewareUtil . getInterface ( specVersion ) ;
256291 }
257- return customMiddleware . getMiddleware ( ) ( params ) ;
292+ return ( await customMiddleware . getMiddleware ( ) ) ( params ) ;
258293 } ,
259294 mountPath : middlewareDef . mountPath ,
260295 beforeMiddleware : middlewareDef . beforeMiddleware ,
@@ -264,4 +299,4 @@ class MiddlewareManager {
264299 }
265300}
266301
267- module . exports = MiddlewareManager ;
302+ export default MiddlewareManager ;
0 commit comments