"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();