{"_id":"@dteel/use-stored-reducer","_rev":"6-ac0603a8d409869b7d91002ba4e2af6a","name":"@dteel/use-stored-reducer","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.1":{"name":"@dteel/use-stored-reducer","description":"useStoredReducer, kind of like useReducer except it will persist in localStorage. Will stay in sync with other hooks across your app and across brower windows.","version":"0.0.1","main":"src/useStoredReducer.js","type":"module","author":{"name":"Dan Teel"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/danielteel/use-stored-reducer.git"},"peerDependencies":{"react":">=16.9.0"},"devDependencies":{"react":"^16.9.0","react-dom":"^16.9.0","babel-jest":"^27.3.1","jest":"^27.3.1","@babel/preset-react":"^7.16.0","@babel/preset-env":"^7.16.4","@testing-library/react":"^12.1.2","@testing-library/jest-dom":"^5.15.0"},"scripts":{"test":"jest"},"jest":{"verbose":true,"testEnvironment":"jsdom"},"gitHead":"f81fe96d206b966ce24bfc2292749a6c90d6ca91","bugs":{"url":"https://github.com/danielteel/use-stored-reducer/issues"},"homepage":"https://github.com/danielteel/use-stored-reducer#readme","_id":"@dteel/use-stored-reducer@0.0.1","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-KRCnXQZ7OyPrpbJIOVI1FFsXjCJ+ZgJJJgt1915AMAWlyntYY0BdzneG/bJrMcZt2eqWk5oo32FbCnwVFOausA==","shasum":"78ca4d3f293e799cab882c3c9b5e8e000eea558d","tarball":"https://registry.npmjs.org/@dteel/use-stored-reducer/-/use-stored-reducer-0.0.1.tgz","fileCount":3,"unpackedSize":7902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhl0AeCRA9TVsSAnZWagAAHkYP/jJbdOvvGuBoZddGl7c8\nQryiH4XEFqAknyNmUFYSsL5UDIUFgEzfy4tcDgA0LML1IQTbf3X/9FFFaUpG\nV8UvkVompdflaPN6h3wKfbS1jhW/5lXaaJOZiTpzlgZOmjBrG+wsIGi6Tlff\nQpRjhH1CvrLm7c40EJPjZ+YcF5MoWR3JAjEA2ZR5ymMO+4DPjWGjAJFP+WWP\nyzS8I8OZ5kshdoknhcsG1Dl/GGgSYzDbF3L1A0UuElDdjvVx99FjAzaS4UaX\ntO24DsMtK9krT0S/hNbeoej6V5qbj4mMQnXKDuLeU3/a+k+B6j1x/M25rIIf\niKTqYA6UaYzRp+DWwJ3FRDJ70erSHjide8n/T4P/peDiI2TWxwVa30o+xGCb\nmV+FLI49rKZ/5Qir6Cmi5FOY2+gUS8dGo7BVmWBEZM6/bfKMdFjK7dCQNePL\nNIiIOhNNcyiXx6BwzgIoTqTWaGohyigqu6Y28171ZBKivMi7Pwqk3uwC2qsn\nV83BGdclbiit2PcpkCdcT4EMkQQq7pOI9C2PsxLNS8anCOpoD6NTzWISIJ+4\n0gZfLrVFvhgf3yQWV3aXUhn0Mu1lj7LlWBTpvo0fiqwo6ZVWiMopDbIqS7jS\n1gXiTvz2bzpsXRcWHVogfWvXW0RwCSZp5RNWKlY1p8LK8DuZ4UOPR0h72Jta\nI1j9\r\n=HwgM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIChMz6nILxkdsTK2TZO6EBFqcGdJAJJ343PRuH6ZbSsAAiEAhSMtHpB1KaOv/0qFCtMmT/hvaSIOo1wZW3Kxk5isY+U="}]},"_npmUser":{"name":"dteel","email":"danjteel@gmail.com"},"directories":{},"maintainers":[{"name":"dteel","email":"danjteel@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-stored-reducer_0.0.1_1637302302517_0.01763131000173912"},"_hasShrinkwrap":false},"0.0.2":{"name":"@dteel/use-stored-reducer","description":"useStoredReducer, kind of like useReducer except it will persist in localStorage. Will stay in sync with other hooks across your app and across brower windows.","version":"0.0.2","main":"src/useStoredReducer.js","type":"module","author":{"name":"Dan Teel"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/danielteel/use-stored-reducer.git"},"peerDependencies":{"react":">=16.9.0"},"devDependencies":{"react":"^16.9.0","react-dom":"^16.9.0","babel-jest":"^27.3.1","jest":"^27.3.1","@babel/preset-react":"^7.16.0","@babel/preset-env":"^7.16.4","@testing-library/react":"^12.1.2","@testing-library/jest-dom":"^5.15.0"},"scripts":{"test":"jest"},"jest":{"verbose":true,"testEnvironment":"jsdom"},"gitHead":"c43d8e3b2792ec46082c2a4e504611a5e56ffdd7","bugs":{"url":"https://github.com/danielteel/use-stored-reducer/issues"},"homepage":"https://github.com/danielteel/use-stored-reducer#readme","_id":"@dteel/use-stored-reducer@0.0.2","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-akvEYZsaKtZ1adMR6ZlXPh8Wvjt7+2lYFmMMqoA2ElwyLWSOcGdW7CBjyo+OUglaQXaSGs5XZ42ttS3EswODCg==","shasum":"3187fbf9360f70d007ad0127d80b00a1fbe7e51f","tarball":"https://registry.npmjs.org/@dteel/use-stored-reducer/-/use-stored-reducer-0.0.2.tgz","fileCount":17,"unpackedSize":91377,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhmUe7CRA9TVsSAnZWagAAslEP/jZNtvkyK1W7nVF3G/eq\naYdv8V3gutOAp0QceP9+Dn/nvuTj5Wvss3sG4iawpvCBz08i5CnTLQldsm67\n2rXjnFtM9229kgskHJrRkc1UFGILU4If5cCJR3DIalthPtR1gX3ixJqogHkl\nwRTjQo0oO/2ijLCjqg5zEUCbqUqjXOfP41BMHEubAVTlmM2XBX+hhBltWq8F\nQdV57H8w15ZHLiVSYxkD8yu4iBBA04y+XYKW6/N4CbLnKqlLOyrzBI4ifivn\nnlYH5qhNfN8vltDWy4VM0WnNw8lKfzR8SBua+0TAdJz1nlpYHAOFaAOdTIZV\nMwFz4RBfsE0VyQWSc0Rj6lwCgiLIEM75COKE93IjXmzvHswMzB1ukOed7N60\nEJ779ym7Y2eU41mkXTXpr7D0AeaDilW7jLmBZoOcmoqhOjxvvCtKf9FFFfEA\nCsOPkBLCk80mguezTBRiYFHByWUrX9pbmevHDsj4UW1nIM1GiXEM64DkBeVy\nTtc0+ghs/FzBd4YWwN6qZrcPbDTO1H+bOZo7qbMSSSaxu3T5Hxlx60v4EG1l\nJAQCBQD0OBAyOeqbxuool1ZvGh9FVvUx/roldLyaOEUKOoL3z/EVzuL4iwfV\nPwTPTnusitXgrsvFciyoFrZfy1pUUcHJFSDCGI7UOevB5Z+XMfrYVYo8RrmX\npgT+\r\n=hbaa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBpE0RhNv1OqshYjmplbjcmYLLPXOy8rkX1Lm9phmRXAAiEA7psKLxlYg/RjlckeLJg1PrlisE8hIpf/ZEC4OmttM9Y="}]},"_npmUser":{"name":"dteel","email":"danjteel@gmail.com"},"directories":{},"maintainers":[{"name":"dteel","email":"danjteel@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-stored-reducer_0.0.2_1637435322950_0.9461545408887135"},"_hasShrinkwrap":false},"0.0.3":{"name":"@dteel/use-stored-reducer","description":"useStoredReducer, kind of like useReducer except it will persist in localStorage. Will stay in sync with other hooks across your app and across brower windows.","version":"0.0.3","main":"src/useStoredReducer.js","type":"module","author":{"name":"Dan Teel"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/danielteel/use-stored-reducer.git"},"peerDependencies":{"react":">=16.9.0"},"devDependencies":{"react":"^16.9.0","react-dom":"^16.9.0","babel-jest":"^27.3.1","jest":"^27.3.1","@babel/preset-react":"^7.16.0","@babel/preset-env":"^7.16.4","@testing-library/react":"^12.1.2","@testing-library/jest-dom":"^5.15.0"},"scripts":{"test":"jest"},"jest":{"verbose":true,"testEnvironment":"jsdom"},"gitHead":"9aa88ae90d815e338d899bb1f75cbd88fbe3d83f","bugs":{"url":"https://github.com/danielteel/use-stored-reducer/issues"},"homepage":"https://github.com/danielteel/use-stored-reducer#readme","_id":"@dteel/use-stored-reducer@0.0.3","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-yUpRHu61DEL2ooiZ2PUKCqnrEeKWL27/X19EsJmy/NOIvvW9Oaexm/D7eMEF4gH6fxS/avW9RWKFC/xoltt5qg==","shasum":"a1650cc9eafff95abc0ab021d3bd9b5b10792486","tarball":"https://registry.npmjs.org/@dteel/use-stored-reducer/-/use-stored-reducer-0.0.3.tgz","fileCount":17,"unpackedSize":91535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhmUnfCRA9TVsSAnZWagAAsIgP/3Ubss00m5VMBtpngSpK\nNcnUw5JrLif4nLDYBo6tlZJakwtNESI9WeW+FdaXquu182TbmDG4pNb3Tplt\nJ/rtVIiVin0zyX7/zjkLGUaXQ1/nkjUwSIKkjPdlP/tZF56nMp3xYfgogAyb\nDsPAmly23fzCpyi/fpu7vcikdkNIpHwEoVeLJNAwSGDH5BmNtnck1T9mOGw2\n2c6INpFDrmYAz8pne30gPG4OgyXmOIEioksroqKuksTiVYOkctrA25YPwLIO\nqZBll+Rs8r6QznN7AqWBfs46KNeDLlDGWEpkIBjxdwWVlvLpunQmuG+ijtkC\nrzN8WmfNrImtpi9QGbaUwqS0A+GWxwEEhy8GwrSv7XP4XuKHXSu9dbFJHbDK\n3y4KIzyFlzBGcWLW7khBHLqrorV/4gj5fSn0rKJRz7N7BOBKq2zh3SNbcfP+\np6i1YFTatjjvRSbFRabpB/+w97o087UZi+U7NkX+Hax1K74qKnj6OfR00YKU\n197sVmSDA2sNDyyaAkQEVBtLRQ9nJjzN00DVn4wWlVyQE7KFkL4i6T99RPHe\nVNq4n1vP3OmzUDl5Pwdzf6Bkf5t5/+OE9cH27foRXH11psGtRH+JY+iaGFdM\n9wM63cDWqlxddMri4pEziXKlQfgzdgm/i4QJOA93GVUXU0vd5xoC+KvG7gYO\n3BPs\r\n=YsxN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDh/IH4Cl5dxpfPJpZXiZwu9vo6A9QOWUSeoAcYpZoWCAIgFDlUFZBOLLCSZNb39baf/6wkvpWNPL8HIxKE5uIqzLE="}]},"_npmUser":{"name":"dteel","email":"danjteel@gmail.com"},"directories":{},"maintainers":[{"name":"dteel","email":"danjteel@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-stored-reducer_0.0.3_1637435871695_0.4205491224691178"},"_hasShrinkwrap":false},"0.0.4":{"name":"@dteel/use-stored-reducer","description":"useStoredReducer, kind of like useReducer except it will persist in localStorage. Will stay in sync with other hooks across your app and across brower windows.","version":"0.0.4","main":"src/useStoredReducer.js","type":"module","author":{"name":"Dan Teel"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/danielteel/use-stored-reducer.git"},"peerDependencies":{"react":">=16.9.0"},"devDependencies":{"react":"^16.9.0","react-dom":"^16.9.0","babel-jest":"^27.3.1","jest":"^27.3.1","@babel/preset-react":"^7.16.0","@babel/preset-env":"^7.16.4","@testing-library/react":"^12.1.2","@testing-library/jest-dom":"^5.15.0"},"scripts":{"test":"jest"},"jest":{"verbose":true,"testEnvironment":"jsdom"},"gitHead":"0ab681f328f47679b9f6aec8d97730e9b8c636e6","bugs":{"url":"https://github.com/danielteel/use-stored-reducer/issues"},"homepage":"https://github.com/danielteel/use-stored-reducer#readme","_id":"@dteel/use-stored-reducer@0.0.4","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-2pBtJYI8vyDM2P7FkSsNDSsw08ZczCb1mQ/9Kyh0PJ4D8odACa6aY1Db4gfbvys/vz3xelZ66nhSuMFnqgJoBw==","shasum":"514b64cc68848bfab7f81adcd0317b31c117c97a","tarball":"https://registry.npmjs.org/@dteel/use-stored-reducer/-/use-stored-reducer-0.0.4.tgz","fileCount":5,"unpackedSize":14994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhtwQDCRA9TVsSAnZWagAAAu0P/3cBtqovMEGwF/apSKTN\nKxKuPtGDTp3GF9rSqVvOY7LMpgDAIlI+mFFv0HTXeCGd+ybdd8OXff7DG/8R\npwXsQeCtbHDbTbRuR6NKQRLfE+epe57R+Su7GhcXyxjp7odTQETWNMMmX1/P\n/jGxWKzb2ix0Tonm/MxNZiQt92qXbrm/K4NhePkEjGcZYP8GEMK69dTvWQ54\naxQe/CMybJ+a5fg7KbOfOrIcKf3VqL8hUBO8e0Zh6yLugGcI0OGPIVhQ4fG5\nJwHX9KRycXoNobeKdqgiqQwSuWKYHJ4k2SOGIYKwClMQ3wheEgPtLxwLzrn4\nYS41oupmZtkN3ulDCvW+stPsivCta3CfQSJwqD7eZpChogC9maCmkmrOJi8H\naia2rszTZlz2FmLU/Y2bVcGwjXAwj4h+/Z7iSsnkD8EQlg6d2IYBxSf68yLx\nrx3KpzhqzyAWCOMuJSsFZvxWrSehySMhMy/wqv5FdcMuw4OaqCjUH8BBpBbM\nimjl6AXHTdwETSexdnqegGE3+wcaGdQLR1AC6qLJrlOQQ3iCvWRJYiToFfLj\nyJ6gfWAiWXYubdfZKGuA28SAfsUGg/EOeQDTHvLJNDfUPRmlpZPxafpZObPK\nWp241pL/chzSTi3dhAomHeSdojviKu0a1mfDrStIMh9sGMij5v/num6/gVbi\nuBGJ\r\n=Imqu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHBaQOswmLg9/5IrM0+QaOY+sztzsIXscbPvgCDxVUh7AiBTcyYPBGJi5XZq6nLuZ1TtjU0vYsXccDm6k2AqRdeYnA=="}]},"_npmUser":{"name":"dteel","email":"danjteel@gmail.com"},"directories":{},"maintainers":[{"name":"dteel","email":"danjteel@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-stored-reducer_0.0.4_1639384067744_0.09886103706161697"},"_hasShrinkwrap":false},"0.0.5":{"name":"@dteel/use-stored-reducer","description":"useStoredReducer, kind of like useReducer except it will persist in localStorage. Will stay in sync with other hooks across your app and across brower windows.","version":"0.0.5","main":"src/useStoredReducer.js","type":"module","author":{"name":"Dan Teel"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/danielteel/use-stored-reducer.git"},"peerDependencies":{"react":">=16.9.0"},"devDependencies":{"react":"^16.9.0","react-dom":"^16.9.0","babel-jest":"^27.3.1","jest":"^27.3.1","@babel/preset-react":"^7.16.0","@babel/preset-env":"^7.16.4","@testing-library/react":"^12.1.2","@testing-library/jest-dom":"^5.15.0"},"scripts":{"test":"jest"},"jest":{"verbose":true,"testEnvironment":"jsdom"},"gitHead":"8a16cee63c0e6a7c3b015118177e168585514eb9","bugs":{"url":"https://github.com/danielteel/use-stored-reducer/issues"},"homepage":"https://github.com/danielteel/use-stored-reducer#readme","_id":"@dteel/use-stored-reducer@0.0.5","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","dist":{"integrity":"sha512-qCgsorUhW40vpS4bT2HJavs04/XfN04GPLEMe8f2w4qfZsbHwWNQ/f6KSblUSJYTnYYLHAv4Y8rG2nU/ZPELxw==","shasum":"2dddfaad8082324e9eeb7e40a818b20454e4ad38","tarball":"https://registry.npmjs.org/@dteel/use-stored-reducer/-/use-stored-reducer-0.0.5.tgz","fileCount":5,"unpackedSize":15171,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhvzGJCRA9TVsSAnZWagAANVYP/RLCUbgQc96ZJSg/0A/Q\nXlNL70UhnNvguhRNmXWmPf0mYdxOyckMORaqEAB5Il0ZRavtZncQujytdGSW\ndSjU3QhCPdl6r+rrP3RVEB8srVE22AsgV+kLff4cn5sSlVlLbhLEDb6c00lA\nkIDmh/JfEM7Wde6oCMFRB+gyKPaXlrfn4qgp8kzs+vbvzoANzdWg5NbyhG0R\nYGoX6dTFzzBjxpoDqWQqJP1+QcW9A3OZrDtMP38cPEnBmhAofVhEiB6EmzRw\nFYf+g28zXh4BMYEW9ebITtcHP0G+CmIPQtNT2RQJrSQ9kFEN63KbTD7XxPp5\ngnz9js8yGGRFEr9HjaiNlVT+nkkVrNkelBReP5Ov3ez1XvmluKOc4ucc6QVe\nhOL/PzO3ABbgSpd2k0whf7Tnq2sVpq7H8C7v3ggrlMUdB10gXhIMHCHjmlIf\nTR04SaqTvFQBwlNScWrxVEsgVsEYaEHEnUZrnhvXuMebSVrdgJyR829No+nW\n3t1qZ39r26NlGphfgNYl1vekHnqr2SHreTubY8MB/9p3qpoePBD3JrILrIlW\n7qBvgGlHB1WsNqRUa3kmfzo3spxYHHB+F/lR63z+HSAKyce/90wf4Kt05C5G\ngsmSz2zA1NlDnjtN5ZbMa0HdT4B93BdmPEt9ggg5Us09jxsrORSSETZlsEZP\nnhJk\r\n=Pmxu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICYSQxnKET1S1VLqw0cairyI7JytXTqTeAiWMSQ2MRqOAiA5Bmn50xTQPzo9OJas45EpovoqpaYoFbvOTrPuvjOQqg=="}]},"_npmUser":{"name":"dteel","email":"danjteel@gmail.com"},"directories":{},"maintainers":[{"name":"dteel","email":"danjteel@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-stored-reducer_0.0.5_1639920009256_0.20403732893684534"},"_hasShrinkwrap":false},"0.0.6":{"name":"@dteel/use-stored-reducer","description":"useStoredReducer, kind of like useReducer except it will persist in localStorage. Will stay in sync with other hooks across your app and across brower windows.","version":"0.0.6","main":"src/useStoredReducer.js","author":{"name":"Dan Teel"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/danielteel/use-stored-reducer.git"},"peerDependencies":{"react":">=16.9.0"},"devDependencies":{"react":"^16.9.0","react-dom":"^16.9.0","babel-jest":"^27.3.1","jest":"^27.3.1","@babel/preset-react":"^7.16.0","@babel/preset-env":"^7.16.4","@testing-library/react":"^12.1.2","@testing-library/jest-dom":"^5.15.0"},"scripts":{"test":"jest"},"jest":{"verbose":true,"testEnvironment":"jsdom"},"gitHead":"f1176095bd4c57aaf9a1761252d33d97f17bdd9b","bugs":{"url":"https://github.com/danielteel/use-stored-reducer/issues"},"homepage":"https://github.com/danielteel/use-stored-reducer#readme","_id":"@dteel/use-stored-reducer@0.0.6","_nodeVersion":"14.18.0","_npmVersion":"8.3.0","dist":{"integrity":"sha512-X3ItQm8/HSqWWOdZvefN92VoqNfj5/aWRzt4Txzh8D5qTXOwjGznlO3RiqCgFyNEqbioH0q6dpHJQ4vrJ07LgA==","shasum":"d06e005a285b889df733b8cb0f074a930285f0f8","tarball":"https://registry.npmjs.org/@dteel/use-stored-reducer/-/use-stored-reducer-0.0.6.tgz","fileCount":5,"unpackedSize":15150,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBR6Bf56KiaISbTJukRrjPtKyUF0FC0Ezg19kCRms9niAiAVG6q7wYNQK81WIw+lxbNuVNVD+bC8iWJB3Hg1XCUBkg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicPHDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmre5w/9HKCiXaFQ7/kDvmzRkXOuv8ubzch7obrzPGM80UFUjF38daAq\r\nF4LaRCXZwV3P2L5fYcNYmK1wRxV2ZLwYoKSAQKgDyPprl3SavQRLiK/rKkFI\r\n5L8ghRlP0RuPdc+cqUOXdVtsCFR4TIgKzrdsAZPRcEqyvi+o4EqJGa4gPuaI\r\nlf/HZpJXA9Me4lCTPVPQ6pol9hs5LzsvXioJXfGrjJNZ4qcZ6Ek57m00v6Vz\r\nuAcEwcb5IbVhjK/FTMupDJ0Bh02DfUNYfz9wH0lhSustvST4tSokj4UPlCzq\r\nxnpn0UObvjxgROXPbbCc5HIMDKjgAAD0bYE3IV6YL+utKnkVCaUJRsmVTCQs\r\nNTcu69aK38HHbDlO/eKeJLGB/wyWDF5UOMY9vC0gPZw1WBPmDUphFBxN73n9\r\nePJrLeBAclL9UotX015JXMriw1VFzCQVkl+2oK5xnwhYYSDly3Ul1KZhxetd\r\npS32ieCGwYoS9FFUVmXHK99W8r/6BtOCg0GcBDZnmDBVo7XWvbF9LYF1F7zF\r\nxhVT5clTA0VUqNJBF0jqGqO+ckjteYJ0RjU8eSejCj5WON0OPUM0Oj6RNRnj\r\nqEM1t1XwMojkQwzDKqecaI7XwQYHq4UrvcKmpxnjSqVN0ZHFs0BgNTYSrCD/\r\ntNCmwolEK38L3QdnLRbaBc+z/KQrHX+ACLQ=\r\n=KV5e\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dteel","email":"danjteel@gmail.com"},"directories":{},"maintainers":[{"name":"dteel","email":"danjteel@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-stored-reducer_0.0.6_1651569091805_0.12391637065184735"},"_hasShrinkwrap":false}},"time":{"created":"2021-11-19T06:11:42.456Z","0.0.1":"2021-11-19T06:11:42.649Z","modified":"2022-05-03T09:11:32.052Z","0.0.2":"2021-11-20T19:08:43.117Z","0.0.3":"2021-11-20T19:17:51.842Z","0.0.4":"2021-12-13T08:27:47.917Z","0.0.5":"2021-12-19T13:20:09.581Z","0.0.6":"2022-05-03T09:11:31.957Z"},"maintainers":[{"name":"dteel","email":"danjteel@gmail.com"}],"description":"useStoredReducer, kind of like useReducer except it will persist in localStorage. Will stay in sync with other hooks across your app and across brower windows.","homepage":"https://github.com/danielteel/use-stored-reducer#readme","repository":{"type":"git","url":"git+https://github.com/danielteel/use-stored-reducer.git"},"author":{"name":"Dan Teel"},"bugs":{"url":"https://github.com/danielteel/use-stored-reducer/issues"},"license":"ISC","readme":"# useStoredReducer [![Node.js CI](https://github.com/danielteel/use-stored-reducer/actions/workflows/node.js.yml/badge.svg?branch=main)](https://github.com/danielteel/use-stored-reducer/actions/workflows/node.js.yml)\r\n\r\n## Description\r\nuseStoredReducer is a reducer hook that syncs to localStorage. If the localStorage value is changed, useStoredReducer updates to the new value. If another useStoredReducer hook in the application is utilizing the same keyName, the update is almost immediate. \r\n\r\nFor performance optimization, it optionally takes a hysterisis argument, which is how long it should wait before comitting the new value to localStorage (the change is made immediately to all the current app's hooks, but it will wait to write to localStorage). This prevents writing to the disk until the state has not changed in XXX milliseconds. If not specified, the localStorage is written to immediately. Writing immediately should be fine for simple values, but if using JSON.stringify/JSON.parse with large objects, it might make more sense to set the hysterisis to 100ms.\r\n\r\n## Add it to your project\r\nInstall the package from npm with\r\n```sh\r\nnpm install @dteel/use-stored-reducer\r\n```\r\nAnd import it into one of your react components\r\n```javascript\r\nimport {useStoredReducer} from '@dteel/use-stored-reducer';\r\n```\r\n\r\n## The hook\r\n\r\nThe hooks signature is \r\n```javascript\r\nconst [state, {current: dispatchRef}] = useStoredReducer(keyName, reducer, initialValue, storageObject, hysterisis=null)\r\n```\r\n### Returned\r\n- **state** - the current state of the hook\r\n- **dispatchRef** - a ref to the dispatch function. To use, call dispatchRef.current('action', payload, callback)\r\n\r\n### Passed\r\n- **keyName** (string)   - this is the key name the hook will use to read/write localStorage\r\n- **reducer** (callback) - pass in a function that handles the dispatch calls, [example](#reducer-function). This is different then reacts useReducer.\r\n- **initialValue** (any) - if the keyName is not found in localStorage, the initial state will be set to this, and it will be saved to localStorage\r\n- **storageObject** (optional, StorageObject) - what storage object to use. Can be localStorage, sessionStorage, or a custom object that implements Storage\r\n- **hysterisis** (optional, number) - this defines how long the hysterisis is before localStorage is written to. If not passed, or set to null, there is no hysterisis and state is stored to localStorage immediately.\r\n\r\n\r\n### Reducer function\r\nThe parameters to your reducer function are,\r\n- **state** - the current state\r\n- **action** - a string representing an action\r\n- **payload** - this is the optional data sent with the action from dispatch()\r\n- **callback** - this is a function supplied from dispatch()\r\n\r\nWhatever you return from your reducer function is what the state gets set to.\r\n\r\nBelow is a simple example\r\n```javascript\r\nfunction reducer(state, action, payload, callback) {\r\n    switch (action) {\r\n        case 'age':\r\n            return {...state, age: Number(payload)};\r\n        case 'name':\r\n            return {...state, name: payload};\r\n        case 'reset':\r\n            return {age: 0, name: ''};\r\n        case 'get':\r\n            callback(state);\r\n            return state;\r\n        default:\r\n            throw Error('undefined action');\r\n    }\r\n}\r\n```\r\n\r\n# Small example component\r\n```javascript\r\nimport { useStoredReducer } from '@dteel/use-stored-reducer';\r\n\r\n//The reducer function we pass to the hook, when you call dispatchRef.current(action, payload) \r\n//this function gets called with the current state and the action/payload you passed to it.\r\n//what you return is what the state gets set to\r\nfunction reducer(state, action, payload) {\r\n    switch (action) {\r\n        case 'age':\r\n            return {...state, age: Number(payload)};\r\n        case 'name':\r\n            return {...state, name: payload};\r\n        default:\r\n            return state;\r\n    }\r\n}\r\n\r\nexport default function ExampleComponent(){\r\n    //We're reading/writing to localStorage key 'person' with a hysterisis of 500ms\r\n    //If someones typing, it wont save to storage until they have a 500ms break in key events\r\n    const [state, {current: dispatch}] = useStoredReducer('person', reducer, {age: 0, name: ''}, localStorage, 500);\r\n    return (\r\n        <>\r\n            <input type='text'  value={state?.age || ' '}   onChange={ (e) => dispatch('age', e.target.value) } />\r\n            <input type='text'  value={state?.name || ' '}  onChange={ (e) => dispatch('name', e.target.value) } />\r\n        </>\r\n    );\r\n}\r\n```\r\n\r\n\r\n","readmeFilename":"README.md"}