{"_id":"@brendanatme/make-redux-state","_rev":"5-8c3223ba75d39b96c96dc48758b33b36","name":"@brendanatme/make-redux-state","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@brendanatme/make-redux-state","version":"1.0.0","description":"Take the boilerplate out of redux.","main":"index.js","scripts":{"prebuild":"npm run test","build":"babel src -d dist","release":"node scripts/release.js","test":"mocha -- --require @babel/register"},"repository":{"type":"git","url":"git+https://github.com/brendanatme/make-redux-state.git"},"author":{"name":"brendanatme"},"license":"ISC","bugs":{"url":"https://github.com/brendanatme/make-redux-state/issues"},"homepage":"https://github.com/brendanatme/make-redux-state#readme","devDependencies":{"@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/node":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/register":"^7.5.5","@brendanatme/js-helpers":"^1.0.2","chai":"^4.2.0","mocha":"^6.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-redux":"^7.1.1","redux":"^4.0.4","reselect":"^4.0.0"},"peerDependencies":{"@brendanatme/js-helpers":"^1.0.2","react":"^16.9.0","react-dom":"^16.9.0","react-redux":"^7.1.1","redux":"^4.0.4","reselect":"^4.0.0"},"_id":"@brendanatme/make-redux-state@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.3","_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"dist":{"integrity":"sha512-oIQiikeaL1TNQLt7k++awfqv/HOX87iKZ8h4g2XSyNymX+UaxgQMXenliKvZYFktF5mOzxHO66W1d3P5cr2N4Q==","shasum":"820c9e362f1ac36407d50cb5afbd3c43b127ccc3","tarball":"https://registry.npmjs.org/@brendanatme/make-redux-state/-/make-redux-state-1.0.0.tgz","fileCount":9,"unpackedSize":19657,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaBM9CRA9TVsSAnZWagAAqSoP/0Zy5x7DgGl5xQZCwBBh\nCgVlMaX3KG9MmWpNnO3Rq4PZWMAuE33ryEIhJ7ok0sXyQlSIK2NnSWycvKpP\nzawUJQ3qx7aMRQG79O92e2JTa3hAY6UGdwXvMEBu2mp3XID7LeybmsKXkqLy\nFVXgbVZ/t7/oEWg+I+XBHPkex+7vPxZ8f+Y0eb9mCYcuTQkDj1cgzSDNoHEy\noGj03d+5VAEtm6hT7X9xQhpGZILIjnJ/CGmrWZI4Yf6GwFe+lUwMAqDZaiOZ\nGZGGVHS3ROubPjNE7LdDhvAOIpnGqAxP2s5HpBneMki+v/uUFIub/UEa6pv9\nXeBKmF+sKr57DZCHASweu9ePb3ZoRor6GhhUW03IqSTPjePCyKTELhIgMOEY\ndghuHyBQFZCD9tt0+8htKe4N0cSEmExQeqWHQYQCQO/l/DM38zvidw+y0eYM\ncLdiRiI0dpF3u4lOTS5PW89OmvBsow5HJel7WbrBvv8PtEF+TmpCPXKOAIyR\nZj8QxowYs2mzmQCv7UZsEWLntCwsihcVnIN0FM7gxB4Pn542DSSDXgJPAv6z\ne5YJY9oMhgADuFzrA5ueNout9Ufj1jDnktaWAfyDrx7rZLjs6Vo9nDmYjpwj\njP4IEKMHz87VoAZz4d1OJKf086WvuK0JGZpAgAXoFT67eQgQD4cQzl6e2YRy\n7py+\r\n=iq49\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGLDR2NgTQWOB+oQNI0MJMNhK7K0HmVWFB88ek+7jQSmAiAWdc/d0iysi+fcBXj/QG4Yzzt4BUwlGvVQ8YcaX/D89Q=="}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/make-redux-state_1.0.0_1567101756801_0.1405086373259259"},"_hasShrinkwrap":false},"1.0.1":{"name":"@brendanatme/make-redux-state","version":"1.0.1","description":"Take the boilerplate out of redux.","main":"index.js","scripts":{"prebuild":"npm run test","build":"babel src -d dist","release":"node scripts/release.js","test":"mocha -- --require @babel/register"},"repository":{"type":"git","url":"git+https://github.com/brendanatme/make-redux-state.git"},"author":{"name":"brendanatme"},"license":"ISC","bugs":{"url":"https://github.com/brendanatme/make-redux-state/issues"},"homepage":"https://github.com/brendanatme/make-redux-state#readme","devDependencies":{"@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/node":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/register":"^7.5.5","@brendanatme/js-helpers":"^1.0.2","chai":"^4.2.0","mocha":"^6.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-redux":"^7.1.1","redux":"^4.0.4","reselect":"^4.0.0"},"peerDependencies":{"@brendanatme/js-helpers":"^1.0.2","react":"^16.9.0","react-dom":"^16.9.0","react-redux":"^7.1.1","redux":"^4.0.4","reselect":"^4.0.0"},"_id":"@brendanatme/make-redux-state@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.3","_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"dist":{"integrity":"sha512-U+igep0g0ZFH3vn/NU/lfms23lN1JJjL+pEKDsptYfu9ePdegBruvnzfmNpRLkV+rdLsNPdmsIzM1x/eAevocw==","shasum":"18650f280f58f052b82c01c3500e68a22e694273","tarball":"https://registry.npmjs.org/@brendanatme/make-redux-state/-/make-redux-state-1.0.1.tgz","fileCount":9,"unpackedSize":19705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaBRSCRA9TVsSAnZWagAAu3YQAJup6ChY5fCyJKP9Tu5Y\ncEV3eTIjQBYz75OqgTQO9vvtRjpJEsqlDkz2mhcVuYVM0Llbpmyv1vGULAPf\nUXci+DowtcwUFOk2j9UqJukjZfpYKqviLMXuddvEz33V5QFwoGKJDJHbS82Z\ndmVH67TD0JN6VZTRxKu1oR0Nw3yRYZXzP500/0kmfuvtZ8HBYGI83Ld5Jr0g\nNwB4H/Pgi0yiQmnEBkkja4ZkDBnYtGH3vscw8LhX1Hu3GGYmS7OVdXXYsKoS\nCW/aXxBIjvnZDLYhNLKkDL6C+XZcJeAChm4txMVUsjrDgGYEvZ/ic8gt2Cyb\nfjEd9oAnoBO6+Oj2kj7kRviFF9mKGkiZBow3GF3OZEd7+cHBPxgV4GZpm5V1\nO204okSgK8Z6qrTJPRBn20RHSThdhKNlycNyak8aYFFlQ1ytNqu2ruXsGK0+\nUu/ihpl+9x0LDRM5u0+k0A30jlu11mSFXl9k/G6RiJkO8e4Uzxwty40cvcFd\n0sf69Na4F/xjkWNtsi3aNz7MpgRNAqKPZkQRwuCfMF1OmtCfOHZ13gJOPtAU\nkL2BHALRkCN5vV30FXbpSfQwvRhQ74RZis4b2rccPq46kzVmOoDqKm/ACXs7\nIsP/0CYbJ7dCfzjjOpbRI9a6XhsAwHFJObzIrc7mntpyH9u7LwLCK2YMk/IT\nw2sR\r\n=ObAq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCW8FU7uCtLr0iqtCzMObxJ5gTbV9Xl2UExCALh16XG7wIge28KZXyAsb5ez9tf27v/uSPGja+4Q2xo5UMpNGQdEuw="}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/make-redux-state_1.0.1_1567102033945_0.9568955854306103"},"_hasShrinkwrap":false},"1.0.2":{"name":"@brendanatme/make-redux-state","version":"1.0.2","description":"Take the boilerplate out of redux.","main":"index.js","scripts":{"prebuild":"npm run test","build":"babel src -d dist","release":"node scripts/release.js","test":"mocha -- --require @babel/register"},"repository":{"type":"git","url":"git+https://github.com/brendanatme/make-redux-state.git"},"author":{"name":"brendanatme"},"license":"ISC","bugs":{"url":"https://github.com/brendanatme/make-redux-state/issues"},"homepage":"https://github.com/brendanatme/make-redux-state#readme","devDependencies":{"@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/node":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/register":"^7.5.5","@brendanatme/js-helpers":"^1.0.2","chai":"^4.2.0","mocha":"^6.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-redux":"^7.1.1","redux":"^4.0.4","redux-thunk":"^2.3.0","reselect":"^4.0.0"},"peerDependencies":{"@brendanatme/js-helpers":"^1.0.2","react":"^16.9.0","react-dom":"^16.9.0","react-redux":"^7.1.1","redux":"^4.0.4","redux-thunk":"^2.3.0","reselect":"^4.0.0"},"_id":"@brendanatme/make-redux-state@1.0.2","_npmVersion":"5.6.0","_nodeVersion":"8.9.3","_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"dist":{"integrity":"sha512-qUkHsnib10NlE+03g6T7WDw/m7oTtam6IbPzDD6WqEIqzu3rg5Mvy5KmvKvykSI+ZeQ0wJtIFrxXB4mCvfT9Ig==","shasum":"50310ee01c97d5d03d95dc1ea1f7be858e3a2b13","tarball":"https://registry.npmjs.org/@brendanatme/make-redux-state/-/make-redux-state-1.0.2.tgz","fileCount":9,"unpackedSize":19763,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaBTlCRA9TVsSAnZWagAAgWEP/j9BsbLiAAndn5xlWP3R\nfaFVShyO4yfHWArLKfICR5ccVnATkkYQ6Cg3AN48ozYrQg3haZjerez3K4gn\nwt/XqUJjNzWeGF7c5shGEehAfD7NUxgEk8PjJc7NShjrLpAgfJlBBl2JfK99\nhpSafKmlu9YSBJDsSo0q0EHq2TdPLquvOboLqS7d4SVAMtF64HroWvDN+JbQ\n3R7dFDZVZa8LeqcN+jYKspXwV1HO2HKYgkD4xgGbNnMOz9N5uCFqSQgGoJja\nCyVRic3HVJYibt/2GBnC7F3UbClCxTdXwCbYFEH5DueEllkDi1DcuB7ien2C\niDTGax/WrHlRPmTMSyHs5OL6CMAPCshkCTmyPlUmz8W9W74shlcedetQT2LE\nzXJ3FE+VhK/zUUcgw/lBGHun90Zsp6CFFly6P51A6ZO2Pjbj0r2za1RpRJKE\nzwHDb4/KDdjoY+ZGJS2RNGgcPInn3VBiKr0FIEH/2uhPr/XLLygqL0oDfGDY\nM7FTAmNvYQKjD4eo/6NY68lOqQtvy0B9oOz0FfBNdLOdZqPXmGyDuGhw1+HZ\nikHgWc7crci+cR175COylpneb0YSqP8QnE98KvDXTLQMgNZICxrK0vtxAZWi\nK2PgpisixvrS3G0wJVnJOBkyIFulTHouMWhIKrLxRAzGZUsPGjsGsMWbzg08\nC49U\r\n=CNFS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCavA/4NBf03EPAGz74YeJVBtQQ/cxFe1UhZPkD1oxE6AIgW8UYVThRUh4QUsMNVJix/1+TsLbUf5kksIiroa8bHWM="}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/make-redux-state_1.0.2_1567102180828_0.07893995979067725"},"_hasShrinkwrap":false},"1.0.3":{"name":"@brendanatme/make-redux-state","version":"1.0.3","description":"Take the boilerplate out of redux.","main":"index.js","scripts":{"prebuild":"npm run test","build":"babel src -d dist","release":"node scripts/release.js","test":"mocha -- --require @babel/register"},"repository":{"type":"git","url":"git+https://github.com/brendanatme/make-redux-state.git"},"author":{"name":"brendanatme"},"license":"ISC","bugs":{"url":"https://github.com/brendanatme/make-redux-state/issues"},"homepage":"https://github.com/brendanatme/make-redux-state#readme","devDependencies":{"@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/node":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/register":"^7.5.5","@brendanatme/js-helpers":"^1.0.2","chai":"^4.2.0","mocha":"^6.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-redux":"^7.1.1","redux":"^4.0.4","redux-thunk":"^2.3.0","reselect":"^4.0.0"},"peerDependencies":{"@brendanatme/js-helpers":"^1.0.2","react":"^16.9.0","react-dom":"^16.9.0","react-redux":"^7.1.1","redux":"^4.0.4","redux-thunk":"^2.3.0","reselect":"^4.0.0"},"_id":"@brendanatme/make-redux-state@1.0.3","_npmVersion":"5.6.0","_nodeVersion":"8.9.3","_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"dist":{"integrity":"sha512-5+moqxGl3cbIQs0kB470pdod2SE+8NqgEbbQlKpnC1PLQggbVZXw2MsfPj+wTBAkSU1SifeoolWk5jL+TGuD8Q==","shasum":"463a03212b76bb7c2913690cba1f9fe3d6b71a81","tarball":"https://registry.npmjs.org/@brendanatme/make-redux-state/-/make-redux-state-1.0.3.tgz","fileCount":9,"unpackedSize":19736,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaBccCRA9TVsSAnZWagAAN7oP/A0lU9Ld3rgXmeJYthoh\nxKxGAmVImGm4dBmCDOhHUAUeFzNw3umetF0EZm0IZbqap5trO4DVxXNKmScR\n8disSOM+qJzYNPLjiPfEV0/qGLUjkbga/0uH59TrqPBwVjy15CAj6eff/OGj\n6Vx3UFjPWTEXCtIb3DJUXTavUagEH92U9bha8GzRhh2ypCl5zTOWMw9fjo4e\nTnP7fnTqlST4q07yAGLNIA6JlnkRsta6O5Cax7G2zCQxgo2UB2ZPOwAPas3x\nOetlUnCqpPi1BS+te/4NsLaizoFaqPB+ZrFtHcEPPAuTLHNYx1wBsyeJ2H62\nwWGOTgAR2JbTQUWK482I5+EFoFoz4TOsoZIfIF725S/LSAGXTos9p6sDaRqi\nKwxGO3YIPX4/hRB73UZojm1XEpmPz5TQDlFYE3ECr2FAr+erGAF6Ss7QVePO\nUfVQCRh5nQXm0cH4M+2/S5uNhX/jOCJJQST8dbxrhmCmJDDu+MLWoh2u3oQK\n8oYEi42HRs0nnqLxUBRUIv9MrVUxXSJ7FIEtvSBZjTGuckKFLojYJhPmbMBb\nzf2kpe3RgOTYoG9u7AM/G/udf7O8/ItALDyYrllQALi4sZKQWtbZXnxK1OtF\n8BSrXqiwJLykdzTbB86dMEhOyQAOh2Pcrtf+oZ3kyWK8Wuksvl4apb3ujCYg\n8AFV\r\n=eMNF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFIGDAAu0+vjjmajT054ABuEmxI8lQlNS7FDzL6eUvhDAiAl4JzsbYhUpVjPhCHhoq+sYcBKt9RGk3XFZvoAakVCNw=="}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/make-redux-state_1.0.3_1567102748054_0.7688882154532153"},"_hasShrinkwrap":false},"1.0.4":{"name":"@brendanatme/make-redux-state","version":"1.0.4","description":"Take the boilerplate out of redux.","main":"index.js","scripts":{"prebuild":"npm run test","build":"babel src -d dist","release":"node scripts/release.js","test":"mocha -- --require @babel/register"},"repository":{"type":"git","url":"git+https://github.com/brendanatme/make-redux-state.git"},"author":{"name":"brendanatme"},"license":"ISC","bugs":{"url":"https://github.com/brendanatme/make-redux-state/issues"},"homepage":"https://github.com/brendanatme/make-redux-state#readme","devDependencies":{"@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/node":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/register":"^7.5.5","@brendanatme/js-helpers":"^1.0.2","chai":"^4.2.0","mocha":"^6.2.0","react":"^16.9.0","react-dom":"^16.9.0","react-redux":"^7.1.1","redux":"^4.0.4","redux-thunk":"^2.3.0","reselect":"^4.0.0"},"peerDependencies":{"@brendanatme/js-helpers":"^1.0.2","react":"^16.9.0","react-dom":"^16.9.0","react-redux":"^7.1.1","redux":"^4.0.4","redux-thunk":"^2.3.0","reselect":"^4.0.0"},"_id":"@brendanatme/make-redux-state@1.0.4","_npmVersion":"5.6.0","_nodeVersion":"8.9.3","_npmUser":{"name":"brendanatme","email":"registrations@brendanat.me"},"dist":{"integrity":"sha512-K+be9og/hXnQYUizbsOsU3vIR52i6GbCQHlwQCgnHtbos3Dj8QP25Ou0wJCblN/xwxJPXvSoGNrYhrIQ1tatzA==","shasum":"f778a5fe63c9f09affa4ecaeb017ceff3a2f7fef","tarball":"https://registry.npmjs.org/@brendanatme/make-redux-state/-/make-redux-state-1.0.4.tgz","fileCount":9,"unpackedSize":19736,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdapzlCRA9TVsSAnZWagAAHCMQAI4q8E32uOe6Mv/5+mxl\nzl5mc+ir+0IRKEK1sN2fpidXvlJBLK2mAFB2XCpW5doKjCSwi9mXxaaj99I6\n5cgw/D89YyPNgChND6UV7SKgFGRMoUK0ZMtyTZufkANF4z4aD8tgeBdjS9qO\nIdpSoHqrEff2F0KUCFxbIXnSql1Sjc8LXeKUPX1qNfwTNqQpVXSB3gKDrdFY\nQRJlKgsjRaN3Zb/rFn/tX9JABOYm2WF/os7MsartaG/+o43L6BSSryVlWgIq\n3IwksgrtbJli/bjutz+4qtswsjhIJB5VoPonUjUZgBL+yMz6Kh+amg7WO0Um\nPNcbse/+YeXmYRHmQmMm6Tpk8dME3HaIIJgn8kOFxJb/Q8Q2vdqHspV1Z949\nZkriTox1v45dO+tIR3lJcukc5rjt28/KTaJNgTs2GShzBfcphEy8Ojyll+Lj\nu9mrucTFzy0OWUTF2UuUuO0O44J/LOs/QXSTMj3G5mJUSg9iHZUvLxe2K7Uq\nlG3Z89EZQjkl/vsPokY44lOjF6InX2Q+/AytVY6SsKFNZAYEaVdTY1Zrs6+Q\np+zSNttuaS5NyDckKntrUJgZzhzmo+nhJgZeHte9VT/9HmnvHcEvvcmVKuoV\nyHeIb3xjhVdlmoDbiBpsAgN+jst6pd1LfjqX+9CsGYtk2rvWKGyRTE2tNjEv\n4pdh\r\n=Se5i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDao1EVt7T2dSx5+GSrcA9vbDdCb0vHZzVhqSFLB0U+NgIhAOGuqhmjw9LPTfq02jl7T8/9dm3Yq7lPpVSkZ9lHylQI"}]},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/make-redux-state_1.0.4_1567268066592_0.12425532196416711"},"_hasShrinkwrap":false}},"time":{"created":"2019-08-29T18:02:36.584Z","1.0.0":"2019-08-29T18:02:36.920Z","modified":"2022-04-04T20:30:49.573Z","1.0.1":"2019-08-29T18:07:14.094Z","1.0.2":"2019-08-29T18:09:40.942Z","1.0.3":"2019-08-29T18:19:08.188Z","1.0.4":"2019-08-31T16:14:26.875Z"},"maintainers":[{"name":"brendanatme","email":"registrations@brendanat.me"}],"description":"Take the boilerplate out of redux.","homepage":"https://github.com/brendanatme/make-redux-state#readme","repository":{"type":"git","url":"git+https://github.com/brendanatme/make-redux-state.git"},"author":{"name":"brendanatme"},"bugs":{"url":"https://github.com/brendanatme/make-redux-state/issues"},"license":"ISC","readme":"# Make Redux State\n\nTake the boilerplate out of redux.\n\nCreates a slice of Redux state, and provides out-of-the-box reducers, actions for updating data and network status, and higher-order components\n\nStore all your relevant state data in one object and cut out boilerplate without losing any flexibility in Redux.\n\n## Usage\n\n### Creating State\n\n```javascript\nimport { makeActionTypes, makeReduxState } from '@brendanatme/make-redux-state';\nimport { myApi } from './path/to/my-api';\n\nconst STATE_KEY = 'myStateSlice';\n\nconst ActionTypes = makeActionsTypes(STATE_KEY);\n\nconst options = {\n  actions: {\n    myCustomFetch: (...myActionArgs) => (dipatch, getState) => {\n      dispatch({ type: ActionTypes.clear });\n      \n      myApi\n        .fetchData(...myActionArgs)\n        .then((data) => {\n          dispatch({\n            type: ActionTypes.onLoadSucceeded,\n            payload: { data },\n          });\n        })\n        .catch((error) => {\n          dispatch({ type: ActionTypes.onLoadFailed });\n        });\n    },\n  },\n  initialState: { // with default shape\n    currentId: '',\n    data: {},\n    failed: false,\n    items: [],\n    loaded: false,\n  },\n};\n\nexport const myState = makeReduxState(STATE_KEY, options);\n```\n\n### Adding State to Redux\n\n```javascript\nimport { createStore, combineReducers } from 'redux';\nimport { myState } from './path/to/my-state';\n\nconst initialState = {\n  [myState.key]: myState.initialState,\n};\n\nconst reducer = combineReducers({\n  [myState.key]: myState.reducer,\n});\n\nconst myStore = createStore(reducer, initialState);\n```\n\n### Injecting State Props into Components\n\nYou can use the \"withProps\" HOC method to inject your state props into a component.\n\n```javascript\nimport React from 'react';\nimport { myState } from './path/to/my-state';\n\nconst MyComponent = ({\n  myStateSlice, // myState.key\n}) => (\n  <div>\n    {myStateSlice.loaded ? (\n      <span>{JSON.stringify(myStateSlice.data)}</span>\n    ) : (\n      <span>Loading...</span>\n    )}\n  </div>\n);\n\nexport default myState.withProps(MyComponent);\n```\n\n### Giving Containers access to State Actions\n\n```javascript\nimport React from 'react';\nimport MyComponent from './path/to/my-component';\nimport { myState } from './path/to/my-state';\n\nclass MyContainer extends React.Component {\n  componentDidMount() {\n    const args = {};\n    this.props.myCustomFetch('any', args, 'you', 'want');\n  }\n\n  render() {\n    return (\n      <MyComponent />\n    );\n  }\n}\n\nexport default myState.withActions(MyContainer);\n```\n\n## API\n\n### makeActionTypes\n\n@param {string} key  the key of the piece of state you are creating\n@returns {Object} a hash of action type strings\n\nAction Types:\n\n- `clear`: resets state slice to default state\n- `onLoadFailed`: sets \"failed\" flag to true\n- `onLoadSucceeded`: sets \"failed\" flag to `false`, \"loaded\" flag to `true`, and updates state with payload\n- `setCurrentItem`: sets the \"currentId\" property. Gives you access to a computed property \"current\" when you have items in the \"items\" array\n- `update`: updates state with payload. Useful catchall to perform any manual update you want in a custom action creator\n\nExample:\n\n```javascript\nconst ActionTypes = makeActionTypes('users');\n```\n\n### makeReduxState\n\n@param {string} key  the key of the piece of state you are creating\n@param {Object} options  object containing custom action and custom initialState\n\nOptions:\n\n```javascript\n{\n  actions?: {\n    [k: string]: (args: any) => (dispatch: function, getState: function) => void;\n  };\n  initialState?: {\n    currentId: string;\n    data: any;\n    failed: boolean;\n    items: [\n      { id: string|number; ...any }\n    ],\n    loaded: boolean;\n  };\n}\n```\n\n- `Options.actions`: a hash map of Redux action creators\n- `Options.initialState`: the custom initial state of your state slice\n\nExample:\n\n```\nconst ActionTypes = makeActionTypes('users');\nconst stateSlice = makeReduxState('users', {\n  actions: {\n    fetchUser: (id) => (dispatch, getState) => {\n      // ... get user ...\n      dispatch({\n        type: ActionTypes.onLoadSucceeded,\n        payload: {\n          data: user,\n        },\n      });\n    },\n    doSomethingSpecial:\n  },\n  initialState: {\n    data: {\n      something: 'custom',\n    },\n  },\n});\n```\n\nReturns: a `ReduxState` object with the following properties:\n\n```javascript\n{\n  actions: Object<{ [k: string]: Function }>\n  initialState: Object;\n  key: String;\n  reducer: Function;\n  withProps: Function;\n  withActions: Function;\n  withAll: Function;\n}\n```\n","readmeFilename":"README.md"}