| 103 | * @typeParam CFG - Configuration type |
| 104 | */ |
| 105 | export function registerExpressMiddleware<CFG>( |
| 106 | ctx: Context, |
| 107 | middlewareFactory: ExpressMiddlewareFactory<CFG>, |
| 108 | middlewareConfig?: CFG, |
| 109 | options: MiddlewareBindingOptions = {}, |
| 110 | ): Binding<Middleware> { |
| 111 | options = {injectConfiguration: true, ...options}; |
| 112 | options.chain = options.chain ?? DEFAULT_MIDDLEWARE_CHAIN; |
| 113 | if (!options.injectConfiguration) { |
| 114 | const middleware = createMiddleware(middlewareFactory, middlewareConfig); |
| 115 | return registerMiddleware(ctx, middleware, options); |
| 116 | } |
| 117 | |
| 118 | const providerClass = defineInterceptorProvider<CFG, MiddlewareContext>( |
| 119 | middlewareFactory, |
| 120 | middlewareConfig, |
| 121 | options, |
| 122 | ); |
| 123 | return registerMiddleware(ctx, providerClass, options); |
| 124 | } |
| 125 | |
| 126 | /** |
| 127 | * Template function for middleware bindings |