{"_id":"react-hooks-in-callback","_rev":"27-522d07f341226d32ade9971dbdb10ac4","time":{"0.1.0":"2021-01-03T18:39:52.007Z","0.1.0-rc-1":"2021-01-03T18:39:52.007Z","0.1.0-rc.2":"2021-01-03T18:39:52.007Z","0.1.1":"2021-01-03T18:39:52.007Z","0.1.2":"2021-01-03T18:39:52.007Z","0.1.3":"2021-01-03T18:39:52.007Z","0.1.4":"2021-01-03T18:39:52.007Z","0.1.5":"2021-01-03T18:39:52.007Z","0.1.6":"2021-01-03T18:39:52.007Z","0.1.7":"2021-01-03T18:39:52.007Z","0.1.8":"2021-01-03T18:39:52.007Z","0.1.9":"2021-01-03T18:39:52.007Z","created":"2021-01-04T19:09:45.111Z","1.0.0":"2021-01-04T19:09:45.236Z","modified":"2022-05-14T12:14:48.233Z","1.0.1":"2021-01-08T00:08:21.538Z","1.0.2":"2021-01-09T15:54:17.679Z","1.0.3":"2021-01-13T09:31:11.842Z","1.0.4":"2021-01-13T09:44:01.074Z","1.0.5":"2021-01-17T20:20:46.636Z","1.0.6":"2021-01-17T23:59:12.438Z","1.0.7":"2021-02-12T12:38:25.371Z","1.0.8":"2021-02-17T23:07:37.856Z","1.0.9":"2022-04-26T18:26:16.309Z","1.1.0":"2022-04-27T10:05:48.589Z"},"name":"react-hooks-in-callback","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"react-hooks-in-callback","version":"1.0.0","author":{"name":"Fernando Ekutsu Mondele","email":"vs_fernando@yahoo.fr","url":"https://www.linkedin.com/in/fernando-ekutsu-mondele-67405484/"},"description":"React hooks in callback","license":"MIT","repository":{"type":"git","url":"/react-hooks-in-callback"},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/index.ts","engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && npm install && npm run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":"^16.0.0","shallow-utils":"^1.0.2","uniqid":"^5.2.0"},"devDependencies":{"@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.5.0","@testing-library/user-event":"^7.2.1","@types/jest":"^25.1.4","@types/node":"^12.12.38","@types/react":"^16.9.27","@types/react-dom":"^16.9.7","@typescript-eslint/eslint-plugin":"^2.26.0","@typescript-eslint/parser":"^2.26.0","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","microbundle-crl":"^0.13.10","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1","shallow-utils":"^1.0.2","typescript":"^3.7.5","uniqid":"^5.2.0"},"keywords":["react","react-hooks","callback","action","react-action","react-redux","redux","redux-thunk"],"gitHead":"04b5b98aca8bae4f5ac560e88d29a079f792c2e6","_id":"react-hooks-in-callback@1.0.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-oCXv8zNM+gCMRpV5htSBluGHMfnqCwlTcvQllwzI+9JMvfAZ6W8iFg8cwO70CAv6zIX3ACVO6I63Pqd8Ubf4xA==","shasum":"ad7530c127bff3fd09640f2b7e9e47a1e6b5c745","tarball":"https://registry.npmjs.org/react-hooks-in-callback/-/react-hooks-in-callback-1.0.0.tgz","fileCount":15,"unpackedSize":480101,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf82f5CRA9TVsSAnZWagAAgrkP/3ZufEi2uOkH8Og6H2y9\n4CmByb4VfAaVU98tlhFO+pz7KyIkC4ZMNT5zZfIdUrGnRi9j+wdw/NpJrFn0\nYtsUo0BuepfccujX622hU8KvPEMnZ3pbSYGNfbtRuHYKwaGwghe9vQEDrUpY\njum95bTcBrumKGEfgLO0Nq+oy8hlqB15/hRv57/VMMM49HgA56NE6x9g7Xzb\nQBhLz56n0W33yMlFs0FfR+ZzAMhGrwyzMaZAgEmyZOJ4tBjZlIeCKx/Bcu7d\nNnmrkXwXkPVYJDg4lK2FOet9SaSdCWTds6fX/zuPUVQU5+CkjMDBEqhA5VWj\nO7MX0WMaJn2+F27JiHif1yVGaLQ+M2g10Np5sVAaZqfe1fZo3uU0XntXc4xZ\nKJ5l5StWYGZDrAeHjwYpc4T9w3HBG8RMZvYwVfUl8Hy5/9+roD9tyiTe2La2\n4Evup85tV0Vkp46x9BWykYO3cChpjOGpIkzC4Fykq2qijcKq7QGQcRwRqQ69\nWqgmImooA6HHc75bTE6zKDHDwRK2EWjjyJPV0aIGWGuAZ4na2j3sJICKakHI\nBqDtWOOTN5IEwl7mvjSNM2mwLvD//kUE/P9Zq5dg3T/WVwqi52s4KZInZ5uh\nTIR+veaCJPDlcKlwmyD++dm6ENEUUL484UjyZLx9r0o4TaktGKxAe2OQXre+\nL4rR\r\n=Sm92\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJiJJHIMc3E24jgyKg/8glF7ckcza1YauO15W7ATbh1wIhAIG/DQAOb0ddO7/m+P6N0ZeIfPSJK569gApz2SbCvLla"}]},"_npmUser":{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"},"directories":{},"maintainers":[{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-hooks-in-callback_1.0.0_1609787385112_0.4834480681316733"},"_hasShrinkwrap":false,"deprecated":"this package has been deprecated due to some error fixed in version 1.0.2"},"1.0.2":{"name":"react-hooks-in-callback","version":"1.0.2","author":{"name":"Fernando Ekutsu Mondele","email":"vs_fernando@yahoo.fr","url":"https://www.linkedin.com/in/fernando-ekutsu-mondele-67405484/"},"description":"React hooks in callback","license":"MIT","repository":{"type":"git","url":"/react-hooks-in-callback"},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/index.ts","engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && npm install && npm run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":"^16.0.0","shallow-utils":"^1.0.2","uniqid":"^5.2.0"},"devDependencies":{"@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.5.0","@testing-library/user-event":"^7.2.1","@types/jest":"^25.1.4","@types/node":"^12.12.38","@types/react":"^16.9.27","@types/react-dom":"^16.9.7","@typescript-eslint/eslint-plugin":"^2.26.0","@typescript-eslint/parser":"^2.26.0","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","microbundle-crl":"^0.13.10","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1","shallow-utils":"^1.0.2","typescript":"^3.7.5","uniqid":"^5.2.0"},"keywords":["react","react-hooks","callback","action","react-action","react-redux","redux","redux-thunk"],"gitHead":"ac057c4b5e8bfa3c21394a47acd5562a1dffdcbb","_id":"react-hooks-in-callback@1.0.2","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-65816AMOJv0jBkj4puFurv9wAAIkeTj471Vh1KNtxHVdGiLtImDQkQ0wApgsX9INFkxxS0b+50Tsf1M5eCJP5w==","shasum":"7eb062bdef48a54d63bfd9273df6ca570c573858","tarball":"https://registry.npmjs.org/react-hooks-in-callback/-/react-hooks-in-callback-1.0.2.tgz","fileCount":16,"unpackedSize":482522,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf+dGqCRA9TVsSAnZWagAA9RQP/3QnLObuB+wpf8gwTsnK\nEkb+OpB22hHp5ZCgkMkTciyB16TC7K/l8sryCRy6Jmhiv8U18lz+fNNiSIOZ\nCnCPYU9/KfM7q2usKnYMLhb9b4UAfoCTXjWjA0eEvgs0ynXqrJeoqmWZs1+x\n8MNWYMDFpx5ZScA7fH2WwZTecvdZY7c3tro8yC+yetmMSWaVPZ2dA7kVrHwE\nz7w1IBBjs6E1b/FcaLzrDRUD9Ml4zEIZOoRIXkvZrffwbMwMI2FSxh8+TW9Q\ngk/9gyIYcEVrIAWPMdxZHre1qMnk7sqWL/iu8ymr76I+j4fKxhp8hnq9V44H\nWf0lItDLLQdLIEO1CBziXHkZuwHtyaG5LB+nehssSA3+Y7R2dMHxWjs/atLT\nuHZMgbcy+y6G+ltA9188rRm92C9KNw2mbpeJoXt5/tJedEGNlITQwpbVDbDX\neV6IsiB9/rlk8jbgvtBAN4oSxjs2rB6rASKBLyxwinFj2oVPq1DtsG7qb0tK\nPuPvELJ2TE+mzFzGyJn4KcGvIpfxrTQ8aJKqs/HN6GnPAJxBViOl/EGqRtme\n/WOMK8KJBddP72IDDxILr3uqpJ+OQQbsWYUhqt3y9xGPFtXuE+ixk4ZL661d\n5JRc7YwbpZ2+ehHZVUyeiDsOMVYZsl5kECIj4UDomnlSIfTGUCzf00k9Yb/E\n2/J2\r\n=GcsG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHn4GT0rE6F98pV8kyawH3YVFvs9csmPSjDM4CLwggCTAiAe/0FcBfroD140oO6jfjKr4GZvgLGmnzxwXkVHLbWJYA=="}]},"_npmUser":{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"},"directories":{},"maintainers":[{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-hooks-in-callback_1.0.2_1610207657510_0.4764692704376803"},"_hasShrinkwrap":false},"1.0.4":{"name":"react-hooks-in-callback","version":"1.0.4","author":{"name":"Fernando Ekutsu Mondele","email":"vs_fernando@yahoo.fr","url":"https://www.linkedin.com/in/fernando-ekutsu-mondele-67405484/"},"description":"React hooks in callback","license":"MIT","repository":{"type":"git","url":"/fernandoem88/react-hooks-in-callback"},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/index.ts","engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && npm install && npm run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"immer":"^8.0.0","react":"^16.0.0","rx-subject":"^3.1.0","shallow-utils":"^1.0.2","uniqid":"^5.2.0"},"devDependencies":{"@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.5.0","@testing-library/user-event":"^7.2.1","@types/jest":"^25.1.4","@types/node":"^12.12.38","@types/react":"^16.9.27","@types/react-dom":"^16.9.7","@typescript-eslint/eslint-plugin":"^2.26.0","@typescript-eslint/parser":"^2.26.0","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","immer":"^8.0.0","microbundle-crl":"^0.13.10","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1","rx-subject":"^3.1.0","shallow-utils":"^1.0.2","typescript":"^3.7.5","uniqid":"^5.2.0"},"keywords":["react","hooks","callback","rerender","action","redux","thunk","redux-thunk"],"gitHead":"9363fec327f6cafc992fbb0519bc64ef486b5851","_id":"react-hooks-in-callback@1.0.4","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-pPGejE1/EQYX/oB+DSjImoaRGvgyQLp8abN8p9/wM9m6wsSfzjg2wyPWrNHmeDZ1FMs0soSWqmAYAyOLb+VBbw==","shasum":"c45b89e238564004b1c7af6ee9017f3c693620a8","tarball":"https://registry.npmjs.org/react-hooks-in-callback/-/react-hooks-in-callback-1.0.4.tgz","fileCount":18,"unpackedSize":128966,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/sDhCRA9TVsSAnZWagAA0SsP/i1K3iv4OsxDzFThBG4O\nV5laFHLWYNtEQj07DzAmJdVrxoFxf2r+OJ+W+mOKFslLK0EziHDEYPTfxOin\nfRp1qSBrsbt8/IkjXSIgWy5ZmwpPRa48uKas6ED1JovzulLXYqGexxBFk3EJ\nktZR/VM0Q1khVPlaOwypinB87DioJKPuM1vaPxdr/njAng+EaczhoXhhkAqR\n8qNAENh1Oazj8Qyl5aZWyAFtBHh055ixCWylKw3LP+QYol9XHznDjvwlFyjL\nb1HE+JvwZdnmnw0VyGzw3/z7673Zwfp1Ji7cWv9qLUqi3bW3mlgAnJdzkjjk\nzyLCGPNzMVZ7K7aUzzMPR6Au4sblbjBG21wIndNPWcYBWd/ek5xkOuBnv7Sb\nmBt7gBzGgOydYAcgKF4zWPCK2op4jha+VX1L3KJ20zQniAIuNUy2fzWhWBrB\n8pq/nOQxlYhTmj7xVTsPju5Jq4AfFXN3dFGMI+KUqtASbfJPN90Wr0BL+dyj\nGdBwo9yatYnj93LmOvVVaFiKTu2fAb3l+dNx2yQjrfT/F9+VEdieiR5cRt9N\nccTMf5Oqb9sgByO17+iYPACFz2Gky+dU5aiXLfx0t3xAiGL3vZObiScK2/Ly\nHh1ULdN0ZIjp1eH7uLqAgvhoBBgA7wr53e0qKTFgGK849s/o13+IbAd/ub9O\nfptJ\r\n=xcwn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVrU84Kq/hfdGRFGVfJzDYjCnocWO9FCFzhA1ppWkm3QIgYTGIckY8qdvi2F0w5pxoITdyNYqv20EO+pkRaOwdNDA="}]},"_npmUser":{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"},"directories":{},"maintainers":[{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-hooks-in-callback_1.0.4_1610531040858_0.6653343392349755"},"_hasShrinkwrap":false},"1.0.5":{"name":"react-hooks-in-callback","version":"1.0.5","author":{"name":"Fernando Ekutsu Mondele","email":"vs_fernando@yahoo.fr","url":"https://www.linkedin.com/in/fernando-ekutsu-mondele-67405484/"},"description":"React hooks in callback","license":"MIT","repository":{"type":"git","url":"/fernandoem88/react-hooks-in-callback"},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/index.ts","engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && npm install && npm run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"immer":"^8.0.0","react":"^16.0.0","rx-subject":"^3.1.0","shallow-utils":"^1.0.2","uniqid":"^5.2.0"},"devDependencies":{"@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.5.0","@testing-library/user-event":"^7.2.1","@types/jest":"^25.1.4","@types/node":"^12.12.38","@types/react":"^16.9.27","@types/react-dom":"^16.9.7","@typescript-eslint/eslint-plugin":"^2.26.0","@typescript-eslint/parser":"^2.26.0","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","immer":"^8.0.0","microbundle-crl":"^0.13.10","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1","rx-subject":"^3.1.0","shallow-utils":"^1.0.2","typescript":"^3.7.5","uniqid":"^5.2.0"},"keywords":["react","hooks","callback","rerender","performance","redux","thunk","redux-thunk"],"gitHead":"08dbad1fe676327c92a17c48d36dff6bc4a8d140","_id":"react-hooks-in-callback@1.0.5","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-4ePNYmVx5qNfjNORTBPJRlP8jLTLlUmU5VL2OtoNs1GXxdqwXKkxPqbSmuhcjCB3KWWDBJ9dWJ77oK4ZPpZBwQ==","shasum":"0286bcf77be797f801be231b9339bb962c2df8bb","tarball":"https://registry.npmjs.org/react-hooks-in-callback/-/react-hooks-in-callback-1.0.5.tgz","fileCount":19,"unpackedSize":130230,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBJwfCRA9TVsSAnZWagAAZPwP/0gmfLcMrvzGGLDj1wz2\nmAB6wXOITzoutUCpWUtnocruLFDWR6peh7XubjtuWNLbXTSdOzZyPXpVoI/u\no8i6afcS9490rOVhbw3zolT5JHpKJY2iLqEOkJJFq37VYzyeKTXr2tLRRZgd\nrvrlB5TfvdoD3byMrQOC0WYcsOtKPK7hHKopAt/Cg3TF5D/b1CHgmSb2j4pb\nNX0q+njh/0DlzAwEfeyVpyacbogs4/EPgxQo54ZALcP7IDDloimN2UfokaAZ\n5H3IB1O4LGUMLN820UWzFZ4MAAJjk8+shas+/Dfpd4BBco5uCSda4fjser+K\nIJEn7KRTIxWI26rO5s6MyyZ+DrFK9UXu/VdI/iFThbe6iLXyfYUn95aIhKa/\nbmMxOIggH7ciigfTTrH6lBTw4e4Oy3jA6/l4UTmlDbWUoEA2ScAHFs/nK02a\nfq1Ok4aUJWFNWNSUFPyPS1HChgqz1kliZZm7ebYegSPItgMIA6idVl2jpI6Q\nIFyFJryWLt/597hEYDYOc0PtD54/xpvcZ9tZVInDb5C4cjAP07/IIPnLWYrX\nEFPBG7fvAi/4mKTKsBhXySj2+o3UuAe+leqzjg467pvQyTHcX2XTZulMti6J\nArIyq1M1deN2FUZqifp4ftn4Px1/sqNwgWcBEsI6PBcXcTaqlKmfd5MYHXkC\nSVgw\r\n=awoC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJe4HJsSrOJNFlvM88z6hrH72vsOHB0nDJJzm8gHLgxQIge05SVBt7YyXDpz+oicx6Ktd4QpVxH1/VM7JcRXZPGJg="}]},"_npmUser":{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"},"directories":{},"maintainers":[{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-hooks-in-callback_1.0.5_1610914846519_0.3480462995780549"},"_hasShrinkwrap":false},"1.0.6":{"name":"react-hooks-in-callback","version":"1.0.6","author":{"name":"Fernando Ekutsu Mondele","email":"vs_fernando@yahoo.fr","url":"https://www.linkedin.com/in/fernando-ekutsu-mondele-67405484/"},"description":"React hooks in callback","license":"MIT","repository":{"type":"git","url":"/fernandoem88/react-hooks-in-callback"},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/index.ts","engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && npm install && npm run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"immer":"^8.0.0","react":"^16.0.0","rx-subject":"^3.1.0","shallow-utils":"^1.0.2","uniqid":"^5.2.0"},"devDependencies":{"@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.5.0","@testing-library/user-event":"^7.2.1","@types/jest":"^25.1.4","@types/node":"^12.12.38","@types/react":"^16.9.27","@types/react-dom":"^16.9.7","@typescript-eslint/eslint-plugin":"^2.26.0","@typescript-eslint/parser":"^2.26.0","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","immer":"^8.0.0","microbundle-crl":"^0.13.10","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1","rx-subject":"^3.1.0","shallow-utils":"^1.0.2","typescript":"^3.7.5","uniqid":"^5.2.0"},"keywords":["react","hooks","callback","rerender","performance","redux","thunk","redux-thunk"],"gitHead":"54d3826106d5795d8b22c041a8c6b90a8a7cdd43","_id":"react-hooks-in-callback@1.0.6","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-BP1JtmPHxiwbPIp2i1cMFaL5P96iYGz8k6poGyD2jVt5lqtvfxUB9QRPWF9V3R2mVPPtoHfA13IpNoN/YOctig==","shasum":"21c61b5e3cc730cfe240e8167d8868b9d5e23663","tarball":"https://registry.npmjs.org/react-hooks-in-callback/-/react-hooks-in-callback-1.0.6.tgz","fileCount":19,"unpackedSize":133928,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBM9QCRA9TVsSAnZWagAAV88QAJz4eKXo8KsVZn11iu+v\nHnxGoOdoPLF7O3JYPmshqHN4khQS2i8mCsOPwsftKPIKQlXr09ImAKz80XVi\nlFVUL/IjtDkpUagCOOOWEdiOjpZ2FeycE03rupFKcptHlRexDBLDYPVvUg84\nQjx8jP/sMKn7ExvA7V7XT3s85g20mLXX74QNU1cP08v7rlDV3ecimJ86Upec\nwllLk2hCI0tmL5OloLCwKQDyTlm/BrLNPx88fQ12F0H6uEXVMxInUT2JmNH1\nh6eXIyksTJRAQGxbAnn7z4PgkqRsf0FuFEGN6ZZSUFd0DdJRvdeh6nYfCaQi\nEj8H2y+7JqCTdt+zXAIY0WbD9sihKMTPojk8WulbqWw5b9sLRa0M090onIsk\nx9wW0nCpXuuJd2ANRgxott1wPNFaMZkaUzXN0V8NSjjVuSdOlSTbA2qHBKjK\nTssNXi+yyNOHkZEE8KXBUIuHxldlr37TwZmJOCz83FaKaCAsobpVQ1PqX/8U\ncdW6sNUxluMMCyo8oFpVJVXYNcykC+UePnQVIVx+zwtN28qLGPkskUER29xL\nMoysloCDbJ0cqQywiWl/JeR4hpIQBz1NGXIB1+yRN/tYfnviaG8bNfWeTVF7\nHHY7EHdsxrv0ZSJBHwsQCJztzyrrt10b1IcV+wXOa26ulUunnIP6fIo+x4FX\nGqBX\r\n=uskC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGC01ZmoQ4YjGfDTRRRYxXf3Nd2+NUnZzROD2nVT9XrwIgE1yFAv4Ligdrg9VLQ8CxLFg9BaSHR2WuW6j2lDAs/bY="}]},"_npmUser":{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"},"directories":{},"maintainers":[{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-hooks-in-callback_1.0.6_1610927952299_0.034352227347115516"},"_hasShrinkwrap":false},"1.0.7":{"name":"react-hooks-in-callback","version":"1.0.7","homepage":"https://www.linkedin.com/in/fernando-ekutsu-mondele-67405484/","author":{"name":"Fernando Ekutsu Mondele","email":"vs_fernando@yahoo.fr","url":"https://github.com/fernandoem88"},"description":"use react hooks in callbacks to take out noisy, useless or repetitive hooks from your components body","license":"MIT","repository":{"type":"git","url":"git+https://github.com/fernandoem88/react-hooks-in-callback.git"},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/index.ts","engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && npm install && npm run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"immer":"^8.0.0","react":"^16.0.0","rx-subject":"^3.1.0","shallow-utils":"^1.0.2","uniqid":"^5.2.0"},"devDependencies":{"@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.5.0","@testing-library/user-event":"^7.2.1","@types/jest":"^25.1.4","@types/node":"^12.12.38","@types/react":"^16.9.27","@types/react-dom":"^16.9.7","@typescript-eslint/eslint-plugin":"^2.26.0","@typescript-eslint/parser":"^2.26.0","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","immer":"^8.0.0","microbundle-crl":"^0.13.10","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1","rx-subject":"^3.1.0","shallow-utils":"^1.0.2","typescript":"^3.7.5","uniqid":"^5.2.0"},"keywords":["react","hooks","callback","react-hooks-in-callback","async","actions","performance","redux","thunk"],"gitHead":"dafd86a7c679333ac7bcb663b6932221ca5848c6","bugs":{"url":"https://github.com/fernandoem88/react-hooks-in-callback/issues"},"_id":"react-hooks-in-callback@1.0.7","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-KrW2ZHYI3pmiaS8Op5IHuca7cOnnq2cYNU1yM7y4CxTZ9n6x0qgjc0huJibVXAlBXx3rK81HI0M+uohzS1LxSA==","shasum":"ad8a7627d3f9a2926ab0d589dacee5bc5b69a5e5","tarball":"https://registry.npmjs.org/react-hooks-in-callback/-/react-hooks-in-callback-1.0.7.tgz","fileCount":20,"unpackedSize":119573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJnbBCRA9TVsSAnZWagAAR/cP/3iscwZfwCFy6BMx4IOs\nlYZs5ddnwrrmvfSjvH6lSJ9Fk5mIHGrFXD1xp5bqwoDkiEZhMGvkx6dwuDf7\nGmAgT54kl1Ap1zB/4zq7E6HwZxH9EVU8BeXPWn0kqkkkbxKYykkXaOxw3m2I\nE1FHriWnv42Vt8/msW0RkAI+kc5HspEyslmwoKGlzLXNU3PHSYyaQhXLRthq\nrd/jcAvITvxBjrDfGHxC4rgAd5GMU8CfZxIAlXIs/Lx0kf13mjQs0T5xTdSe\nuJazdvN0Yo13j+hLfllUrWDSACa4y60w9WQTOvq3IDm1fDV9s99SaB7Ed/Er\nFHWswhHicA+gL8tCfNr38lUs3Kp+BXUZaiMTxnSN4cjZCsaHBskvAxVnzUNL\nCa5z0AvFalIN7ZmZGag+U0bGdrN/FTqluLSjqc0lolX2ihUlr4LLO9amdEyp\nnyG2hxd992uR/Cy8WFKF34gUV8EMWuHHJ68/CiENqTPe+beEFJey4nNR+jWM\nD3IhcIMLXlseb5ds+tjeDP1uzF1EhjclPFplibJpJvZlPlQFsdk6ENZbKrXb\nuCZwXKBfoPEEmRr9hAxAUywjbZlOQ65tqg9MQj/hV6ELIqGac+L1G9ATypwv\nKXnBcfuz2zoVi19xI55zN2sBGvc5jUE8yaUlbSUv91hF32ODHRP5WdCIyQsW\nd1US\r\n=00hT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIElN5fjyxgroN3yny/2ouHqVFtnHWKm23sisg3oS4KMfAiEA7jWAddIZqDWLdBMsdf0z+IdDGFQY+nA5/lJu0AeineE="}]},"_npmUser":{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"},"directories":{},"maintainers":[{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-hooks-in-callback_1.0.7_1613133505211_0.14626937241571136"},"_hasShrinkwrap":false},"1.0.8":{"name":"react-hooks-in-callback","version":"1.0.8","homepage":"https://www.linkedin.com/in/fernando-ekutsu-mondele-67405484/","author":{"name":"Fernando Ekutsu Mondele","email":"vs_fernando@yahoo.fr","url":"https://github.com/fernandoem88"},"description":"use react hooks in callbacks to take out noisy, useless or repetitive hooks from your components body","license":"MIT","repository":{"type":"git","url":"git+https://github.com/fernandoem88/react-hooks-in-callback.git"},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/index.ts","engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && npm install && npm run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"immer":"^8.0.0","react":"^16.0.0","rx-subject":"^3.1.0","shallow-utils":"^1.0.2","uniqid":"^5.2.0"},"devDependencies":{"@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.5.0","@testing-library/user-event":"^7.2.1","@types/jest":"^25.1.4","@types/node":"^12.12.38","@types/react":"^16.9.27","@types/react-dom":"^16.9.7","@typescript-eslint/eslint-plugin":"^2.26.0","@typescript-eslint/parser":"^2.26.0","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","immer":"^8.0.0","microbundle-crl":"^0.13.10","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1","rx-subject":"^3.1.0","shallow-utils":"^1.0.2","typescript":"^3.7.5","uniqid":"^5.2.0"},"keywords":["react","hooks","callback","react-hooks-in-callback","async","actions","performance","redux","thunk"],"gitHead":"a94e2f745202b0549b652e6ed8c80596e4d5fe1f","bugs":{"url":"https://github.com/fernandoem88/react-hooks-in-callback/issues"},"_id":"react-hooks-in-callback@1.0.8","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-hZ7G4/vncu9GiIbLnmL2tvkkL1xGYWDkO4HeKOkaerWRHS0y/shL3KyJwrEU4GRyLUQrq/mKofRd2RIC5NmUIg==","shasum":"f85d318d710bea73825dcdbd51693672a7ed3209","tarball":"https://registry.npmjs.org/react-hooks-in-callback/-/react-hooks-in-callback-1.0.8.tgz","fileCount":20,"unpackedSize":119686,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLaG6CRA9TVsSAnZWagAASSQP/3BsGARjbOS4NvKROak4\nk8DrXIK4tt0tVP6bAmbmW4YrPKI9g6leCI4bJqMNANwTp95gNskJNiqFe/tM\n/gTBKbC0hzWAJ8p8xRZR+N/SLoFBUIkWagzoM5rE0MBKoTvstmMBmWVEX6Kd\nPAV4nYMgv8xSpJQAWNjwrgswZKUpnPCOrZWtCQ5KLAEDXIGWiP94LomqPnDA\n/RsMCeI/MRZyqw65oqwLWeh+FFqTqmlrVUOz78FfoFp2/v8yqmKVtFsolEMd\n7meU7blqPzbKFARcQnjpMHdxSZqOn5R3DO0PFSp8bhjygchf0egXFhb8jB6b\n6DmPwLFE7VuFXO/eIlKsmj0MPneRhRLZsRSodvJRL+qfYs1SGKjKIAhIhPbw\n4xZNNN1xIKWk5KpeARZJWxfkJxe7F7JdgoT5jp3sAUWOBpMqF7+H8olq4P8H\nH7Vy+JYV2BUpDFEWr2UQjl/xHBplZuSwGsQW4H7qTFrf8yWGiiXlAM3Xs7/D\nNyE4tIf76tiFaiHUZsQ8K8TOQnrvqKzC5DuS7tRn1AL5/dSW8VKW+1obm3QU\nm5NuqV9n9pIU+b0jUQ+MJ0lOu4sgJeMgJJVr5kiU8HBb3MMiWTv0SmMgV+Xm\nNyMQivJ2O1usXJZ/UXpQBzLUfSLqsuNyGAQsjibjNSKqiUT6pSwdPHg/G87V\nwzmn\r\n=om0I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRLpYfSiJ4kdFJdLazb1Tlvk8sqSgB7830HZKAhP8hSwIhAITuJ3Plvr3x/i/AUtKeH86iP8rA9ALtNQLtayeFrsMY"}]},"_npmUser":{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"},"directories":{},"maintainers":[{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-hooks-in-callback_1.0.8_1613603257739_0.24132907561925498"},"_hasShrinkwrap":false},"1.0.9":{"name":"react-hooks-in-callback","version":"1.0.9","homepage":"https://www.linkedin.com/in/fernando-ekutsu-mondele-67405484/","author":{"name":"Fernando Ekutsu Mondele","email":"vs_fernando@yahoo.fr","url":"https://github.com/fernandoem88"},"description":"use react hooks in callbacks to take out noisy, useless or repetitive hooks from your components body","license":"MIT","repository":{"type":"git","url":"git+https://github.com/fernandoem88/react-hooks-in-callback.git"},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/index.ts","engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && npm install && npm run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":">= 16.0.0"},"devDependencies":{"@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.5.0","@testing-library/user-event":"^7.2.1","@types/jest":"^25.1.4","@types/node":"^12.12.38","@types/react":"^16.9.27","@types/react-dom":"^16.9.7","@typescript-eslint/eslint-plugin":"^2.26.0","@typescript-eslint/parser":"^2.26.0","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","microbundle-crl":"^0.13.10","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1","typescript":"^3.7.5"},"keywords":["react","hooks","callback","react-hooks-in-callback","async","actions","performance","redux","thunk"],"types":"./dist/index.d.ts","gitHead":"f2500b8e1e04d8a891172f595440badbeaaca57c","bugs":{"url":"https://github.com/fernandoem88/react-hooks-in-callback/issues"},"_id":"react-hooks-in-callback@1.0.9","_nodeVersion":"14.16.0","_npmVersion":"8.4.1","dist":{"integrity":"sha512-hKFV/4IJ4UMVYG07i2/GWPkHOwjCIJCCZ5QbJznT6LhOwQCVa4Rj9wvWH9b4Ajf6u53HZVz/hgX9/Q4FV3fOJA==","shasum":"caa2aaaa898cc5b0c2eb72c468e39a5d8fe4b9e7","tarball":"https://registry.npmjs.org/react-hooks-in-callback/-/react-hooks-in-callback-1.0.9.tgz","fileCount":15,"unpackedSize":51314,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1Y+w5d10P+VBcKKJJCmFq0tzlPeeXhWGf4K2knTO+IgIgLVa0lGUjTwWQlsEgQcqQS6eCjP+3lzf+bv3jZGz1GWg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaDlIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3sBAAlwPgzreXjWUa7zHXwGsiDtDYaplHIDRg9lL+tEZTMRr7VPY+\r\nBEz2BEY8mzPvFC3w9/2OrGRZ1yrgb2175UXH3LofF02NjbrFMu8wIvveDLjq\r\nuphl5q2DBTh+JDLhOkP3YseoObzPnbOVO9RBUTwHC4/RpZpae/qj3PYtORTR\r\nNMWYUoYKTN3tgGpZ8RYmIgCfKloN30BPpmRrzgwd03gieTTIV0xs7DCxjInD\r\nAM9tD2LaeYAKFSzV/TtpyqbwmSb47eol2tyQGug+C6SiB/R+CMC7lvONsr2P\r\nyi7Q4C2+twVZc2SpgvHQoH74R6170zTncgC6dgGiCElO49TjmCG4HX3lytka\r\nVNC3Y8hKkeWVW2Lo3M++8GB4U704rBvH9UCYd62eNwX9KATu8zWb7TuEGy//\r\nH9XL2C0dz03yybuO1Grg3G+tWXiUM8e9+62XybDpFjSonKVYq5FobR9xf8jh\r\nH3ye5zXmsFA0exGsvRQ7FlIqXq/kmkF1/rdv3umAy+w97uG4eGbwW9x+7PyG\r\nW+MznjW+tY5bIa8L/uHKfFzgIxPXQG5pRVk8c+iT40M5kFiwy5lDbQmSRl+u\r\n2F1yMqhASws5Fs7IBvvfYToftS4iSZniCmk3rt4pAqGrGQo1+csxpNN7bheD\r\n06oaay+qGUe5et8U8SX7nOoHgzMTE2ulJfg=\r\n=tnnI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"},"directories":{},"maintainers":[{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-hooks-in-callback_1.0.9_1650997576149_0.06955711853171742"},"_hasShrinkwrap":false},"1.1.0":{"name":"react-hooks-in-callback","version":"1.1.0","homepage":"https://www.linkedin.com/in/fernando-ekutsu-mondele-67405484/","author":{"name":"Fernando Ekutsu Mondele","email":"vs_fernando@yahoo.fr","url":"https://github.com/fernandoem88"},"description":"use react hooks in callbacks to take out noisy, useless or repetitive hooks from your components body","license":"MIT","repository":{"type":"git","url":"git+https://github.com/fernandoem88/react-hooks-in-callback.git"},"main":"dist/index.js","module":"dist/index.modern.js","source":"src/index.ts","engines":{"node":">=10"},"scripts":{"build":"microbundle-crl --no-compress --format modern,cjs","start":"microbundle-crl watch --no-compress --format modern,cjs","prepare":"run-s build","test":"run-s test:unit test:lint test:build","test:build":"run-s build","test:lint":"eslint .","test:unit":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","predeploy":"cd example && npm install && npm run build","deploy":"gh-pages -d example/build"},"peerDependencies":{"react":">= 16.0.0"},"devDependencies":{"@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.5.0","@testing-library/user-event":"^7.2.1","@types/jest":"^25.1.4","@types/node":"^12.12.38","@types/react":"^16.9.27","@types/react-dom":"^16.9.7","@typescript-eslint/eslint-plugin":"^2.26.0","@typescript-eslint/parser":"^2.26.0","babel-eslint":"^10.0.3","cross-env":"^7.0.2","eslint":"^6.8.0","eslint-config-prettier":"^6.7.0","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^11.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.17.0","eslint-plugin-standard":"^4.0.1","gh-pages":"^2.2.0","microbundle-crl":"^0.13.10","npm-run-all":"^4.1.5","prettier":"^2.0.4","react":"^16.13.1","react-dom":"^16.13.1","react-scripts":"^3.4.1","typescript":"^3.7.5"},"keywords":["react","hooks","callback","react-hooks-in-callback","async","actions","performance","redux","thunk"],"types":"./dist/index.d.ts","gitHead":"9f8351d4b260d894241137ff065aaf9f543cad45","bugs":{"url":"https://github.com/fernandoem88/react-hooks-in-callback/issues"},"_id":"react-hooks-in-callback@1.1.0","_nodeVersion":"14.16.0","_npmVersion":"8.4.1","dist":{"integrity":"sha512-RB/KDBVByD9XFmHm5yHfkUdAaI3mTRVW89QUPYkPhMBq7mlO4TY0tv2EnD/qtPGNcI1fX55IpaLZwY3kRbVwHA==","shasum":"6029d508d019b773830c1e3b9ae24388473660bb","tarball":"https://registry.npmjs.org/react-hooks-in-callback/-/react-hooks-in-callback-1.1.0.tgz","fileCount":15,"unpackedSize":59897,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoL5NOGmNNl97DiOUxLNnM6rhOIuvi8z2rYtVNsOzEtwIgR3uVq5sPe54SJ9mxfUMe/tOSfY1+j6+Mpuk0nJHs6+w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaRV8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqauQ//cim5DiH8BjEmM11LvxhOaL3pfLjx0nc/tgldnWfr0cl1RhDu\r\nC8nMN+7awuqzUUgz2jWON6gthGZuz1m7mtTXIv8A1FiCZZ0gcSP9h6uYlbvQ\r\n4jUzDOiKrtVCuHNfBHZhQtOIbCOTdpGpDb4owoSX94khWe9ONEMK1ktF1FLp\r\n2iWnTSzkUKNdYKxbnQDDZ9FJWbkGq82ltwdyahV14E4IMUBGpmeufgl4tq3X\r\n3UKLsYxNLNx20pLBDNy+WHDinLjZxL+aPt1adD7LDOUCosEgZXDdcS81O43M\r\nCim2MDXUsMiy+pSJnM6FJcgnP91F6rVI2OcwS4tdE4mVFWk3CoURriC/eYIG\r\ncEVQftMcwJmbGDUnFgo3PjcfAhCblomCj0VgW28sj6kxHX1TGekyb/L8LPAl\r\neJRcXjxw/G0dAomY/1MnfLHr1gdXLDWz7hmo0Z1BsUzDmbS7oz8GZBX/hG78\r\neWKM6ZMTdoNQoKBQxV4HZeXT3H+P5RCecN0gDDvW4/LWWnd51YkPuY2AiVvt\r\n2B3R26z7Nx6p6N5cecslKoqKWiSJ3JWrpgJx7tmFvefO+vfDE4pLoxyqXSHf\r\nBiXWCsGJYHYcG5+GM+AqKfLa3FGiSnrdbdzhSZ3jO21fvqAQJo8a3F137cRc\r\nlJUgnUnIL7RfSTZguHKi5UWIjy/lQCVXgco=\r\n=7RFv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"},"directories":{},"maintainers":[{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-hooks-in-callback_1.1.0_1651053948403_0.052068800873552146"},"_hasShrinkwrap":false}},"maintainers":[{"name":"fernando.ekutsu","email":"vs_fernando@yahoo.fr"}],"description":"use react hooks in callbacks to take out noisy, useless or repetitive hooks from your components body","keywords":["react","hooks","callback","react-hooks-in-callback","async","actions","performance","redux","thunk"],"repository":{"type":"git","url":"git+https://github.com/fernandoem88/react-hooks-in-callback.git"},"author":{"name":"Fernando Ekutsu Mondele","email":"vs_fernando@yahoo.fr","url":"https://github.com/fernandoem88"},"license":"MIT","readme":"# React hooks in callback\n\n> using hooks in callbacks will be helpful in some cases to filter out noisy hooks and in other cases to avoid defining useless and repetitive hooks in our components just to pass their values to those callbacks\n\nso, This package will help us\n\n- **to filter out unwanted hooks re-renders** (eg: react context related hooks, hooks with timeout or time interval, etc...).\n- **to have a simplified version of async actions** (that will allow us to have a really nice alternative to the _redux-thunk_ approach)\n\n[![NPM](https://img.shields.io/npm/v/react-hooks-in-callback.svg)](https://www.npmjs.com/package/react-hooks-in-callback)\n\n## Install\n\n```bash\nnpm i -S react-hooks-in-callback\n```\n\n## useHooksInCallback\n\n```typescript\nimport { useHooksInCallback } from \"react-hooks-in-callback\";\nimport { useYourCustomHook } from \"./my-custom-hooks\";\n... // here is the component body\nconst [HooksWrapper, getHookState, subscribeToHookState] = useHooksInCallback();\n// HooksWrapper: is a React component where your hooks will be mounted.\n// getHookState: an helper that let you get the hook state in an async way.\n// subscribeToHookState: same as getHookState, but designed to work with useEffect\n...\n// you can either use getHookState or subscribeToHookState, depending on your case\n...\nreturn (\n    <div>\n        {/* useYourCustomHook will be mounted in HooksWrapper */}\n        <HooksWrapper />\n        <button onClick={async () => {\n            // mount useYourCustomHook and wait for its state to be resolved.\n            const hookState = await getHookState(useYourCustomHook);\n            // after being resolved, useYourCustomHook is directly unmounted.\n        }}/>\n    </div>\n)\n```\n\n### Formik example\n\nImagine to have a list of fields where each field component uses **useFormikContext**, just to set the field value on click event.\nthe scenario is the following one:\n\n```typescript\nconst Field = (name: string) => {\n    const formik = useFormikContext();\n    ...\n    return (\n        <div>\n            <button onClick={() => formik.setFieldValue(name, newFieldValue)}/>\n        <div/>\n    )\n}\n```\n\nThe issue here is the **re-render noise** introduced by the formik context. Everytime a field will be updated, all the other fields will re-render since they are using the same react context. This will lead to a bad performance.\n\nCheck the **formik with context's re-render noise** example [here](https://codesandbox.io/s/formik-normal-5vchh?file=/src/Field.js)\n\nWe can solve that issue if we can take the _useFormikContext_ out of the Field component and get its state only when there is a click event. This is what we are going to do by using **useHooksInCallback**.\n\n```typescript\nconst Field = (name: string) => {\n    const [HooksWrapper, getHookState] = useHooksInCallback();\n    ...\n    return (\n        <div>\n            <HooksWrapper /> {/* added! */}\n            <button onClick={async () => {\n              // formik context will be used only once in this callback\n              const formik = await getHookState(useFormikContext);\n              formik.setFieldValue(name, newFieldValue)\n            }}/>\n        <div/>\n    )\n}\n```\n\nCheck the **formik with hooks-in-callback** example [here](https://codesandbox.io/s/formik-with-hooks-in-callback-jeo4i?file=/src/clean/Field.js)\n\n## useActionUtils\n\nA place where we usually use hooks states is in a _redux-thunk_ action.\nthe reason to use the **react-hooks-in-callback** approach instead is because it brings some benefits.\n\n- **your action has only one callback layer**: not a curry function like in redux-thunk approach\n- **hooks based params are not defined anymore in the component but directly in the action callback**: just think if we have a login action and we need to change it in a way to push _/login_ on start and _/home_ on success, we need to have _history_ as parameter and define _const history = useHistory()_ in **every** component where our _login_ action will be used.\n- **filtering unwanted re-renders as we saw previously**\n\n### usage\n\nfirst of all, we need to create utilities for our async actions\n\n```ts\nimport { createActionsPackage } from 'react-hooks-in-callback'\n\nexport const actionsPkg = createActionsPackage()\n// actionsPkg: { HooksWrapper, getHookState, subscribeToHookState }\n// HooksWrapper => Component to be mounted at the top level, directly under all used hooks contexts providers\n// getHookState => get your hook state in an async way in your action\n// subscribeToHookState => subscribe to hooks state changes (probably you don't need it for your actions)\n```\n\nthen we need to mount the HooksWrapper to process our hooks states\n\n```ts\nimport { actionsPkg } from './configs'\n\nconst { HooksWrapper } = actionsPkg\n\nconst MyRootComponent = (props) => {\n  return (\n    <Provider store={store}>\n      <Router>\n        {/*\n          HooksWrapper is where action utils hooks will be mounted\n          so it should be under the providers tree and before the components where the actions will be called.\n        */}\n        <HooksWrapper />\n        {props.children}\n      </Router>\n    </Provider>\n  )\n}\n```\n\nnow we can define a custom hook for our actions\n\n```ts\nexport const useActionUtils = () => {\n  const { dispatch, getState } = useStore()\n  const history = useHistory()\n  return { dispatch, getState, history }\n}\n```\n\nand use it like follows\n\n```ts\nimport { actionsPkg, api } from './configs'\nimport { useActionUtils } from './hooks'\n\nconst { getHookState } = actionsPkg\n\nconst login = async (userId: string) => {\n  // here we will mount useActionUtils in the HooksWrapper component and wait for its state to be resolved.\n  const { dispatch, history, getState } = await getHookState(useActionUtils)\n\n  try {\n    history.push('/login')\n    dispatch({ type: 'LoginStart' })\n    const { data: token } = await api.login(userId)\n    const { data: users } = await api.getUsers(token)\n    dispatch({ type: 'LoginSuccess', payload: users })\n    history.push('/home')\n    // just to check if everything is fine, you can log your redux state here\n    // const storeState = getState();\n    // console.log(storeState)\n  } catch (error) {\n    dispatch({ type: 'LoginError', payload: error })\n  }\n}\n```\n\nAs we can notice in our action, the only one parameter is _userId_. every other parameters related to hooks are defined directly in **useActionUtils** and every change depending on it will be done only in it and won't affect our components.\n\nif it was a redux-thunk action, the synthax would be more complex, we can see the difference bellow.\n\n```typescript\n// redux-thunk action synthax\nconst login = (userId: string, history: History) => {\n  //  hooks values/states should be passed as action params like we passed history in this example\n  return async (dispatch, getState, config: Config) => {\n    // your logic goes here\n  }\n}\n// react-hooks-in-callback action synthax\nconst login = async (userId: string) => {\n  // hooks values/states are defined directly in the action body\n  // your logic goes here\n}\n```\n\nthe last step now is to use everything in a component\n\n```typescript\nimport { login } from './actions'\n\nconst App = () => {\n  useEffect(() => {\n    login('admin') // don't need to dispatch or to pass history\n  }, [])\n\n  return <div>...</div>\n}\n```\n\njust to compare both approaches, if we used a _redux-thunk_ way instead, we had to define _dispatch_ and _history_ in our components to dispatch the login action and pass history as parameter\n\n```typescript\nimport { login } from './actions'\n\nconst App = () => {\n  // if we used a redux-thunk action we should need dispatch and history in our component like bellow\n  const dispatch = useDispatch() // +++++\n  const history = useHistory() // +++++\n\n  useEffect(() => {\n    dispatch(\n      // we need to dispatch an action passing also history\n      login('admin', history)\n    )\n  }, [dispatch])\n\n  return <div>...</div>\n}\n```\n\nYou can find the redux sandbox example [here](https://codesandbox.io/s/redux-with-hooks-in-callback-bzzjb?file=/src/actions.js)\n\nTry it out!\n\n# Advanced\n\n## Waiting for a specific state before resolving the getHookState\n\nsometimes your expected hook state is not the first provided one and you should wait for a specific state before resolving the **getHookState** value.\n\nFor example this following hooks returns the total number of divs in the DOM, but initially returns _undefined_.\n\n```typescript\nconst useDivCount = () => {.\n  const [state, setState] = useState<number>();\n  useEffect(() => {\n    const divs = document.querySelectorAll(\"div\");\n    setState(divs?.length || 0);\n  }, []);\n  return state; // undefined | number\n};\n```\n\nSo in this case what we want to do is to skip the undefined value and wait for the number value. to do so, we just need to implement it by adding a _suspender_ as a second argument to the _getHookState_\n\n```typescript\nconst hookState = await getHookState(useDivCount, (state, utils) => {\n  if (state !== undefined) {\n    utils.resolve() // this will resolve the current state\n    return\n  }\n  if (utils.isBeforeUnmount) {\n    // this should not happen normally, but if it happens and\n    // you did not resolve the getHookState and some how you are unmounting the component\n    // you should do something to not keep this promise in pending state\n    // utils.resolve or use utils.reject\n  }\n})\n```\n\nyou can also subscribe to state changes in useEffect using _subscribeToHookState_\n\n```typescript\nconst [HooksWrapper, , subscribeToHookState] = useHooksInCallback()\nuseEffect(() => {\n  const subscription = subscribeToHookState(useDivCount, (\n    error,\n    data /*{ state: S; isBeforeUnmount: boolean }*/\n  ) => {\n    if (error) {\n      // console.error(error.message);\n      return\n    }\n    // subscription logic goes here\n    const { state, isBeforeUnmount } = data\n  })\n  return subscription.unsubscribe\n}, [])\n```\n\nFind an advanced example [here](https://codesandbox.io/s/waiting-for-a-specific-state-ilqtv?file=/src/UserPass.js)\n\n## see also\n\n- [react-requests-manager](https://www.npmjs.com/package/react-requests-manager)\n\n# License\n\nMIT © [https://github.com/fernandoem88/react-hooks-in-callback](https://github.com/fernandoem88/react-hooks-in-callback)\n","readmeFilename":"README.md","homepage":"https://www.linkedin.com/in/fernando-ekutsu-mondele-67405484/","bugs":{"url":"https://github.com/fernandoem88/react-hooks-in-callback/issues"}}