UNPKG

@nlabs/arkhamjs-middleware-redux

Version:

Integrate ArkhamJS state management within Redux

19 lines (18 loc) 2.7 kB
/** * 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==