@nlabs/arkhamjs-middleware-redux
Version:
Integrate ArkhamJS state management within Redux
19 lines (18 loc) • 2.7 kB
JavaScript
/**
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
*/ export const arkhamMiddleware = (statePath, Flux)=>(store)=>(next)=>(action)=>{
const { __ARKHAMJS_DISPATCH: isArkhamJs } = action;
delete action.__ARKHAMJS_DISPATCH;
// Run the action through the redux reducers
next(action);
// Save the new, altered state within ArkhamJS
Flux.setState(statePath, store.getState());
// Make sure we emit the event through ArkhamJS for any listeners.
if (!isArkhamJs) {
action.__ARKHAMJS_DISPATCH = true;
Flux.dispatch(action);
}
return null;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2Fya2hhbWpzL3BhY2thZ2VzL2Fya2hhbWpzLW1pZGRsZXdhcmUtcmVkdXgvc3JjL21pZGRsZXdhcmUvYXJraGFtTWlkZGxld2FyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGFya2hhbU1pZGRsZXdhcmUgPSAoc3RhdGVQYXRoOiBzdHJpbmcsIEZsdXgpID0+IChzdG9yZSkgPT4gKG5leHQpID0+IChhY3Rpb24pID0+IHtcbiAgY29uc3Qge19fQVJLSEFNSlNfRElTUEFUQ0g6IGlzQXJraGFtSnN9ID0gYWN0aW9uO1xuICBkZWxldGUgYWN0aW9uLl9fQVJLSEFNSlNfRElTUEFUQ0g7XG5cbiAgLy8gUnVuIHRoZSBhY3Rpb24gdGhyb3VnaCB0aGUgcmVkdXggcmVkdWNlcnNcbiAgbmV4dChhY3Rpb24pO1xuXG4gIC8vIFNhdmUgdGhlIG5ldywgYWx0ZXJlZCBzdGF0ZSB3aXRoaW4gQXJraGFtSlNcbiAgRmx1eC5zZXRTdGF0ZShzdGF0ZVBhdGgsIHN0b3JlLmdldFN0YXRlKCkpO1xuXG4gIC8vIE1ha2Ugc3VyZSB3ZSBlbWl0IHRoZSBldmVudCB0aHJvdWdoIEFya2hhbUpTIGZvciBhbnkgbGlzdGVuZXJzLlxuICBpZighaXNBcmtoYW1Kcykge1xuICAgIGFjdGlvbi5fX0FSS0hBTUpTX0RJU1BBVENIID0gdHJ1ZTtcbiAgICBGbHV4LmRpc3BhdGNoKGFjdGlvbik7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG4iXSwibmFtZXMiOlsiYXJraGFtTWlkZGxld2FyZSIsInN0YXRlUGF0aCIsIkZsdXgiLCJzdG9yZSIsIm5leHQiLCJhY3Rpb24iLCJfX0FSS0hBTUpTX0RJU1BBVENIIiwiaXNBcmtoYW1KcyIsInNldFN0YXRlIiwiZ2V0U3RhdGUiLCJkaXNwYXRjaCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsT0FBTyxNQUFNQSxtQkFBbUIsQ0FBQ0MsV0FBbUJDLE9BQVMsQ0FBQ0MsUUFBVSxDQUFDQyxPQUFTLENBQUNDO2dCQUNqRixNQUFNLEVBQUNDLHFCQUFxQkMsVUFBVSxFQUFDLEdBQUdGO2dCQUMxQyxPQUFPQSxPQUFPQyxtQkFBbUI7Z0JBRWpDLDRDQUE0QztnQkFDNUNGLEtBQUtDO2dCQUVMLDhDQUE4QztnQkFDOUNILEtBQUtNLFFBQVEsQ0FBQ1AsV0FBV0UsTUFBTU0sUUFBUTtnQkFFdkMsa0VBQWtFO2dCQUNsRSxJQUFHLENBQUNGLFlBQVk7b0JBQ2RGLE9BQU9DLG1CQUFtQixHQUFHO29CQUM3QkosS0FBS1EsUUFBUSxDQUFDTDtnQkFDaEI7Z0JBRUEsT0FBTztZQUNULEVBQUUifQ==