"Fossies" - the Fresh Open Source Software Archive 
Member "jitsi-meet-7319/react/features/base/redux/MiddlewareRegistry.ts" (6 Jun 2023, 1531 Bytes) of package /linux/misc/jitsi-meet-7319.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) TypeScript source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
1 import { Middleware, applyMiddleware } from 'redux';
2
3 import { IReduxState, IStore } from '../../app/types';
4
5 /**
6 * A registry for Redux middleware, allowing features to register their
7 * middleware without needing to create additional inter-feature dependencies.
8 */
9 class MiddlewareRegistry {
10 _elements: Array<Middleware<any, any>>;
11
12 /**
13 * Creates a MiddlewareRegistry instance.
14 */
15 constructor() {
16 /**
17 * The set of registered middleware.
18 *
19 * @private
20 * @type {Middleware[]}
21 */
22 this._elements = [];
23 }
24
25 /**
26 * Applies all registered middleware into a store enhancer.
27 * (@link http://redux.js.org/docs/api/applyMiddleware.html).
28 *
29 * @param {Middleware[]} additional - Any additional middleware that need to
30 * be included (such as middleware from third-party modules).
31 * @returns {Middleware}
32 */
33 applyMiddleware(...additional: Array<Middleware<any, any>>) {
34 return applyMiddleware(...this._elements, ...additional);
35 }
36
37 /**
38 * Adds a middleware to the registry.
39 *
40 * The method is to be invoked only before {@link #applyMiddleware()}.
41 *
42 * @param {Middleware} middleware - A Redux middleware.
43 * @returns {void}
44 */
45 register(middleware: Middleware<any, IReduxState, IStore['dispatch']>) {
46 this._elements.push(middleware);
47 }
48 }
49
50 /**
51 * The public singleton instance of the MiddlewareRegistry class.
52 */
53 export default new MiddlewareRegistry();