mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
36 lines • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createMiddleware = void 0;
var tslib_1 = require("tslib");
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
var redux_thunk_1 = tslib_1.__importDefault(require("redux-thunk"));
var redux_action_buffer_1 = tslib_1.__importDefault(require("redux-action-buffer"));
var constants_1 = require("redux-persist/constants");
var defaultOptions = {
additionalMiddleware: [],
enableBuffer: true,
enableThunk: true,
};
function createMiddleware(clientOptions) {
var options = Object.assign({}, defaultOptions, clientOptions);
var additionalMiddleware = options.additionalMiddleware, enableBuffer = options.enableBuffer, enableThunk = options.enableThunk;
var middleware = [];
if (enableThunk) {
middleware.push(redux_thunk_1.default);
}
if (additionalMiddleware) {
if (typeof additionalMiddleware === 'function') {
middleware.push(additionalMiddleware);
}
else {
middleware.push.apply(middleware, tslib_1.__spread(additionalMiddleware));
}
}
if (enableBuffer) {
middleware.push(redux_action_buffer_1.default(constants_1.REHYDRATE));
}
return middleware;
}
exports.createMiddleware = createMiddleware;
//# sourceMappingURL=middleware.js.map