@nlabs/arkhamjs-middleware-redux
Version:
Integrate ArkhamJS state management within Redux
3 lines (2 loc) • 5.48 kB
JavaScript
import{Flux as a}from"@nlabs/arkhamjs";import{isPlainObject as w,merge as y}from"@nlabs/utils";import{applyMiddleware as n,createStore as l}from"redux";import{arkhamMiddleware as p}from"./middleware/arkhamMiddleware";import{ReduxMiddleware as g}from"./middleware/ReduxMiddleware";const v=f=>{const{arkhamMiddleware:u=[],flux:d,reducers:s,sagas:S,statePath:e="",reduxMiddleware:o=[],devTools:i}=f,{storage:c}=a.getOptions();let t;if(c){const r=a.getState(e);if(i?t=l(i(s,r),n(...o,p(e,d))):t=l(s,r,n(...o,p(e,d))),r===void 0){const m=t.getState(),h=w(m)?y(m,r):m;a.setState(e,h)}}else t=l(s,i,n(...o,p(e,d))),a.setState(e,t.getState());return o.every(r=>S?(r.run(S),!1):!0),u.push(new g(t,e)),a.addMiddleware(u),t};export{v as createArkhamStore};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2NyZWF0ZUFya2hhbVN0b3JlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtGbHV4fSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHtpc1BsYWluT2JqZWN0LCBtZXJnZX0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXBwbHlNaWRkbGV3YXJlLCBjcmVhdGVTdG9yZSwgU3RvcmV9IGZyb20gJ3JlZHV4JztcblxuaW1wb3J0IHthcmtoYW1NaWRkbGV3YXJlfSBmcm9tICcuL21pZGRsZXdhcmUvYXJraGFtTWlkZGxld2FyZSc7XG5pbXBvcnQge1JlZHV4TWlkZGxld2FyZX0gZnJvbSAnLi9taWRkbGV3YXJlL1JlZHV4TWlkZGxld2FyZSc7XG5cbmltcG9ydCB0eXBlIHtBcmtoYW1SZWR1eFN0b3JlVHlwZX0gZnJvbSAnLi90eXBlcy9tYWluJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUFya2hhbVN0b3JlID0gKGNvbmZpZ3VyYXRpb246IEFya2hhbVJlZHV4U3RvcmVUeXBlKTogU3RvcmU8YW55PiA9PiB7XG4gIGNvbnN0IHtcbiAgICBhcmtoYW1NaWRkbGV3YXJlOiBtaWRkbGV3YXJlID0gW10sXG4gICAgZmx1eCxcbiAgICByZWR1Y2VycyxcbiAgICBzYWdhcyxcbiAgICBzdGF0ZVBhdGggPSAnJyxcbiAgICByZWR1eE1pZGRsZXdhcmUgPSBbXSxcbiAgICBkZXZUb29sc1xuICB9ID0gY29uZmlndXJhdGlvbjtcblxuICAvLyBTYXZlIGluaXRpYWwgc3RhdGUgdHJlZVxuICBjb25zdCB7c3RvcmFnZX0gPSBGbHV4LmdldE9wdGlvbnMoKTtcbiAgbGV0IHN0b3JlOiBTdG9yZTtcblxuICBpZihzdG9yYWdlKSB7XG4gICAgY29uc3QgY2FjaGVkU3RhdGUgPSBGbHV4LmdldFN0YXRlKHN0YXRlUGF0aCk7XG5cbiAgICBpZihkZXZUb29scykge1xuICAgICAgc3RvcmUgPSBjcmVhdGVTdG9yZShcbiAgICAgICAgZGV2VG9vbHMocmVkdWNlcnMsIGNhY2hlZFN0YXRlKSxcbiAgICAgICAgYXBwbHlNaWRkbGV3YXJlKC4uLnJlZHV4TWlkZGxld2FyZSwgYXJraGFtTWlkZGxld2FyZShzdGF0ZVBhdGgsIGZsdXgpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0b3JlID0gY3JlYXRlU3RvcmUoXG4gICAgICAgIHJlZHVjZXJzLFxuICAgICAgICBjYWNoZWRTdGF0ZSxcbiAgICAgICAgYXBwbHlNaWRkbGV3YXJlKC4uLnJlZHV4TWlkZGxld2FyZSwgYXJraGFtTWlkZGxld2FyZShzdGF0ZVBhdGgsIGZsdXgpKSk7XG4gICAgfVxuXG4gICAgaWYoY2FjaGVkU3RhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qgc3RhdGVUcmVlID0gc3RvcmUuZ2V0U3RhdGUoKTtcbiAgICAgIGNvbnN0IHVwZGF0ZWRTdGF0ZSA9IGlzUGxhaW5PYmplY3Qoc3RhdGVUcmVlKSA/IG1lcmdlKHN0YXRlVHJlZSwgY2FjaGVkU3RhdGUpIDogc3RhdGVUcmVlO1xuICAgICAgRmx1eC5zZXRTdGF0ZShzdGF0ZVBhdGgsIHVwZGF0ZWRTdGF0ZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHN0b3JlID0gY3JlYXRlU3RvcmUoXG4gICAgICByZWR1Y2VycyxcbiAgICAgIGRldlRvb2xzLFxuICAgICAgYXBwbHlNaWRkbGV3YXJlKC4uLnJlZHV4TWlkZGxld2FyZSwgYXJraGFtTWlkZGxld2FyZShzdGF0ZVBhdGgsIGZsdXgpKVxuICAgICk7XG5cbiAgICBGbHV4LnNldFN0YXRlKHN0YXRlUGF0aCwgc3RvcmUuZ2V0U3RhdGUoKSk7XG4gIH1cblxuICAvLyBJZiBzYWdhIGlzIGJlaW5nIGFkZGVkLCBydW4uXG4gIHJlZHV4TWlkZGxld2FyZS5ldmVyeSgoaXRlbTogYW55KSA9PiB7XG4gICAgaWYoc2FnYXMpIHtcbiAgICAgIGl0ZW0ucnVuKHNhZ2FzKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgLy8gQWRkIHJlZHV4IG1pZGRsZXdhcmUgdG8gQXJraGFtIHRvIHJlbGF5IGRpc3BhdGNoZXMgdG8gUmVkdXhcbiAgbWlkZGxld2FyZS5wdXNoKG5ldyBSZWR1eE1pZGRsZXdhcmUoc3RvcmUsIHN0YXRlUGF0aCkpO1xuXG4gIC8vIEluaXRpYWxpemUgQXJraGFtSlNcbiAgRmx1eC5hZGRNaWRkbGV3YXJlKG1pZGRsZXdhcmUpO1xuXG4gIHJldHVybiBzdG9yZTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLFFBQUFBLE1BQVcsa0JBQ25CLE9BQVEsaUJBQUFDLEVBQWUsU0FBQUMsTUFBWSxlQUNuQyxPQUFRLG1CQUFBQyxFQUFpQixlQUFBQyxNQUF5QixRQUVsRCxPQUFRLG9CQUFBQyxNQUF1QixnQ0FDL0IsT0FBUSxtQkFBQUMsTUFBc0IsK0JBSXZCLE1BQU1DLEVBQXFCQyxHQUFvRCxDQUNwRixLQUFNLENBQ0osaUJBQWtCQyxFQUFhLENBQUMsRUFDaEMsS0FBQUMsRUFDQSxTQUFBQyxFQUNBLE1BQUFDLEVBQ0EsVUFBQUMsRUFBWSxHQUNaLGdCQUFBQyxFQUFrQixDQUFDLEVBQ25CLFNBQUFDLENBQ0YsRUFBSVAsRUFHRSxDQUFDLFFBQUFRLENBQU8sRUFBSWhCLEVBQUssV0FBVyxFQUNsQyxJQUFJaUIsRUFFSixHQUFHRCxFQUFTLENBQ1YsTUFBTUUsRUFBY2xCLEVBQUssU0FBU2EsQ0FBUyxFQWEzQyxHQVhHRSxFQUNERSxFQUFRYixFQUNOVyxFQUFTSixFQUFVTyxDQUFXLEVBQzlCZixFQUFnQixHQUFHVyxFQUFpQlQsRUFBaUJRLEVBQVdILENBQUksQ0FBQyxDQUFDLEVBRXhFTyxFQUFRYixFQUNOTyxFQUNBTyxFQUNBZixFQUFnQixHQUFHVyxFQUFpQlQsRUFBaUJRLEVBQVdILENBQUksQ0FBQyxDQUFDLEVBR3ZFUSxJQUFnQixPQUFXLENBQzVCLE1BQU1DLEVBQVlGLEVBQU0sU0FBUyxFQUMzQkcsRUFBZW5CLEVBQWNrQixDQUFTLEVBQUlqQixFQUFNaUIsRUFBV0QsQ0FBVyxFQUFJQyxFQUNoRm5CLEVBQUssU0FBU2EsRUFBV08sQ0FBWSxDQUN2QyxDQUNGLE1BQ0VILEVBQVFiLEVBQ05PLEVBQ0FJLEVBQ0FaLEVBQWdCLEdBQUdXLEVBQWlCVCxFQUFpQlEsRUFBV0gsQ0FBSSxDQUFDLENBQ3ZFLEVBRUFWLEVBQUssU0FBU2EsRUFBV0ksRUFBTSxTQUFTLENBQUMsRUFJM0MsT0FBQUgsRUFBZ0IsTUFBT08sR0FDbEJULEdBQ0RTLEVBQUssSUFBSVQsQ0FBSyxFQUNQLElBR0YsRUFDUixFQUdESCxFQUFXLEtBQUssSUFBSUgsRUFBZ0JXLEVBQU9KLENBQVMsQ0FBQyxFQUdyRGIsRUFBSyxjQUFjUyxDQUFVLEVBRXRCUSxDQUNUIiwKICAibmFtZXMiOiBbIkZsdXgiLCAiaXNQbGFpbk9iamVjdCIsICJtZXJnZSIsICJhcHBseU1pZGRsZXdhcmUiLCAiY3JlYXRlU3RvcmUiLCAiYXJraGFtTWlkZGxld2FyZSIsICJSZWR1eE1pZGRsZXdhcmUiLCAiY3JlYXRlQXJraGFtU3RvcmUiLCAiY29uZmlndXJhdGlvbiIsICJtaWRkbGV3YXJlIiwgImZsdXgiLCAicmVkdWNlcnMiLCAic2FnYXMiLCAic3RhdGVQYXRoIiwgInJlZHV4TWlkZGxld2FyZSIsICJkZXZUb29scyIsICJzdG9yYWdlIiwgInN0b3JlIiwgImNhY2hlZFN0YXRlIiwgInN0YXRlVHJlZSIsICJ1cGRhdGVkU3RhdGUiLCAiaXRlbSJdCn0K