{"_id":"@alextewpin/use-promise","_rev":"6-dbe2f8144d9ee9303a5bb5f982b3a04b","name":"@alextewpin/use-promise","dist-tags":{"latest":"2.0.0"},"versions":{"0.2.0":{"name":"@alextewpin/use-promise","version":"0.2.0","author":{"name":"Alexander Tewpin","email":"alex.tewpin@gmail.com","url":"https://github.com/alextewpin"},"repository":{"type":"git","url":"git+ssh://git@github.com/alextewpin/use-promise.git"},"keywords":["promise","use-promise","async","use-async","react-native","react"],"license":"MIT","main":"lib/index.js","scripts":{"start":"webpack-dev-server","build":"rimraf lib && npm run build:babel && npm run build:tsc && npm run build:demo","build:babel":"babel src --out-dir lib --extensions .ts","build:tsc":"tsc --project tsconfig.npm.json","build:demo":"NODE_ENV=production webpack","format":"prettier --write '**/*.*'"},"devDependencies":{"@babel/core":"^7.10.4","@babel/preset-env":"^7.10.4","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","babel-loader":"^8.1.0","clean-webpack-plugin":"^3.0.0","html-webpack-plugin":"^4.3.0","prettier":"^2.0.5","react":"^16.13.1","react-dom":"^16.13.1","rimraf":"^3.0.2","typescript":"^3.9.5","webpack":"^4.43.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":">16.8"},"gitHead":"ade32c528b02e800438e5c79cbdebe9c0f67f133","description":"Hook for declarative promises. Useful for fetching data, sending forms and doing other async stuff right in component. Tiny, easy to use, TypeScript definitions included. Inspired by outstanding [react-async](https://www.npmjs.com/package/react-async) lib","bugs":{"url":"https://github.com/alextewpin/use-promise/issues"},"homepage":"https://github.com/alextewpin/use-promise#readme","_id":"@alextewpin/use-promise@0.2.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-vdesw/DhaPD1Bs4B25S95tYjUggvttnlKAq3U8/+MJ0afTerqlxfWzaspybZbOgwZG1G9EoFX60f7rttK/HvqQ==","shasum":"85bfa422d26c83a7608ebc4c2e388a9c71384161","tarball":"https://registry.npmjs.org/@alextewpin/use-promise/-/use-promise-0.2.0.tgz","fileCount":6,"unpackedSize":14457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/bUzCRA9TVsSAnZWagAAv38P/Ar2U6SCUEeBMj05Fo0Z\npptgWGZ0kVTi+X6qQFRRvQ/WpqD/kp1B9k+FtFeIaiBGmtgLgmOYpaaS2bI+\nNP+4OYtOdch+oBsEoBeMd/m7JZplhRlDB0NwWuIHSdm3tOEg8L1dFfP2tyXZ\nFZHY8XAmwZWEeeWVWCXWYKToLP9PmgUeTm2av5RTRuMzB6eLyBkPVJz8ZPTZ\napbai7xnjmIA8O4qK9+cEP2Ci4YBZGWkne9B0jlRlwj9qAi+LEIwQvQNJqla\nx/Y5PcdQgTXWQnGzKnXoqR8ArKk9u3rfC9MElB1Ap8XDvKzR6hZA/X1aQS6G\nC4JO21woKg7rKGvWuWIdmFn6OilheqyPVoLpJxt+xbjZ6wlSvsiYiyZX8xsN\nFahCq/aYkI5Rae1InLlWfisnFhx14EEkK82F2Bfcl4DDIAvxredHW4vfywrg\nY++VzlRvycaFO+zOm2xL8uim/i15uczEJQn/QxNFf0Am7Z5vavqLREzF4D43\nSBzDbeipTvetyT/lpVH4ZzlR3Bkvofp/YeXSXfw/lLUS3f6Q4ZQaO0sNGz2X\nWODB8PjOWAJavjSkLcMfhEJ/QU7cvZonwEgKiUozjdfxF4eGI41+VfWtPP+4\nYHcDWhnbuyzUeLhMLEAT9ZwB+pCBAULU+ojpupoCcD4IGCdo00dGahYA0JNi\n/W+k\r\n=aZnj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE/m62ECHAxApXp+a8/za9mOMNueY+ygEkh3pDLI33jmAiAUzw2loVWTnrTUesuWN9Ii+GL4dTq/qBVuzsoVoqt9nA=="}]},"maintainers":[{"name":"alextewpin","email":"alex.tewpin@gmail.com"}],"_npmUser":{"name":"alextewpin","email":"alex.tewpin@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-promise_0.2.0_1593685298921_0.446849765802243"},"_hasShrinkwrap":false},"0.2.1":{"name":"@alextewpin/use-promise","version":"0.2.1","author":{"name":"Alexander Tewpin","email":"alex.tewpin@gmail.com","url":"https://github.com/alextewpin"},"repository":{"type":"git","url":"git+ssh://git@github.com/alextewpin/use-promise.git"},"keywords":["promise","use-promise","async","use-async","react-native","react"],"license":"MIT","main":"lib/index.js","scripts":{"start":"webpack-dev-server","build":"rimraf lib && npm run build:babel && npm run build:tsc && npm run build:demo","build:babel":"babel src --out-dir lib --extensions .ts","build:tsc":"tsc --project tsconfig.npm.json","build:demo":"NODE_ENV=production webpack","format":"prettier --write '**/*.*'"},"devDependencies":{"@babel/core":"^7.10.4","@babel/preset-env":"^7.10.4","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","babel-loader":"^8.1.0","clean-webpack-plugin":"^3.0.0","html-webpack-plugin":"^4.3.0","prettier":"^2.0.5","react":"^16.13.1","react-dom":"^16.13.1","rimraf":"^3.0.2","typescript":"^3.9.5","webpack":"^4.43.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":">16.8"},"gitHead":"883d51fb3ce4ff8e2ab5fab33368e25f87c3b402","description":"Hook for declarative promises. Useful for fetching data, sending forms and doing other async stuff right in component. Tiny, easy to use, TypeScript definitions included. Inspired by outstanding [react-async](https://www.npmjs.com/package/react-async) lib","bugs":{"url":"https://github.com/alextewpin/use-promise/issues"},"homepage":"https://github.com/alextewpin/use-promise#readme","_id":"@alextewpin/use-promise@0.2.1","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-TE0mkNGzUfjCAnUGYfgMBgPC0Cy8N6xzU6TqjWMu41ah471XyZYiVyLHHyY+hRt1xheaqBAsVcUK1kcDYVbc1A==","shasum":"6ae4853e758bcefc2665f0805862d8b2e9b1e9a3","tarball":"https://registry.npmjs.org/@alextewpin/use-promise/-/use-promise-0.2.1.tgz","fileCount":6,"unpackedSize":14456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/bxvCRA9TVsSAnZWagAAKcMP/1vpFPftPV0n2EhQ/PfV\nN4C5dW0k7UIj7LECsg8nml8LHk9wDdPv7zO8qEH8evyfY3o7mf3IBrB0zTnC\nKfZnrx/POfPjZgvyspaCLt80uY6GPUYKkV8It/nC27q+HprUTuIJAbfeQt/z\nNnSXx0wOA08QJEc0vf7+QBNwFsxDTWTSoUvGjsErW4dxXSRvVjFH+MgZYW4X\nOH2yeI6+4irtmrAzq9vk0Ko6DOaGxuZRVaqBAPx9U1FX0n1rBEfwsjcOPyV/\ntz4v8yVbkBG5bR+Uo6fTwHLdEnckn0z9CEvtVIWpMuWLwy9tgo5D6oisLngn\nmR3WK6dZgO8wUiskuEiJFAwm3lU0ivW7ps0zukXGgsFuo8Pmk4p3YTODpHia\neOGtTxbeh1QEGE/49Rt6Er6gp8hb3uBj1oQE2j69APVas/7+Fw5fE1jjnY/W\n+n0q+AAxpWikUHbaJVWAieYFKA+e8mzDC1i5rUc67Ac3krsfWXV8uj9ya6Bj\nMzg3U6oL7pjKaWfi4Bsahb61bK3fjq5YAUaRpXc01k/VZvWvVOYWndhaehyw\nhHC/bKiOoeStiNM9aASWmHL1NIrTx6cTII+EsM2yYapiaGPqCuZuJSJdoLeq\nsC4NcXV8xe57EN+opCaqzJWwowqVO7eb3bAsMFCDMbHqMlN5EFTtrw+rCNVS\n4m5h\r\n=5hY9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPOwtgKcw+OaIQnQQJoVE6R7gfgyV16OV880VhGDFYjwIhAPlq3CkDncjNSCdp5L63kdKe9hXj9ccrWzTBzpZ3beMv"}]},"maintainers":[{"name":"alextewpin","email":"alex.tewpin@gmail.com"}],"_npmUser":{"name":"alextewpin","email":"alex.tewpin@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-promise_0.2.1_1593687151492_0.6950676451087576"},"_hasShrinkwrap":false},"0.2.2":{"name":"@alextewpin/use-promise","version":"0.2.2","author":{"name":"Alexander Tewpin","email":"alex.tewpin@gmail.com","url":"https://github.com/alextewpin"},"repository":{"type":"git","url":"git+ssh://git@github.com/alextewpin/use-promise.git"},"keywords":["promise","use-promise","async","use-async","react-native","react"],"license":"MIT","main":"lib/index.js","scripts":{"start":"webpack-dev-server","build":"rimraf lib && npm run build:babel && npm run build:tsc && npm run build:demo","build:babel":"babel src --out-dir lib --extensions .ts","build:tsc":"tsc --project tsconfig.npm.json","build:demo":"NODE_ENV=production webpack","format":"prettier --write '**/*.*'"},"devDependencies":{"@babel/core":"^7.10.4","@babel/preset-env":"^7.10.4","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","babel-loader":"^8.1.0","clean-webpack-plugin":"^3.0.0","html-webpack-plugin":"^4.3.0","prettier":"^2.0.5","react":"^16.13.1","react-dom":"^16.13.1","rimraf":"^3.0.2","typescript":"^3.9.5","webpack":"^4.43.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":">16.8"},"gitHead":"d31a10f0ff18ef0a590dd996262681342140a374","description":"Hook for declarative promises. Useful for fetching data, sending forms and doing other async stuff right in component. Tiny, easy to use, TypeScript definitions included. Inspired by outstanding [react-async](https://www.npmjs.com/package/react-async) lib","bugs":{"url":"https://github.com/alextewpin/use-promise/issues"},"homepage":"https://github.com/alextewpin/use-promise#readme","_id":"@alextewpin/use-promise@0.2.2","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-/A+aPlUplnwG+cxec5x5rAWKohI32/PoELuE5ivcFKTJjQnSNmXwOpl6GqMQvejTxcegKqxeP1A3uOUfgasFBQ==","shasum":"521d5349649192a6734f524cf40495f26ed56916","tarball":"https://registry.npmjs.org/@alextewpin/use-promise/-/use-promise-0.2.2.tgz","fileCount":6,"unpackedSize":14462,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/fYSCRA9TVsSAnZWagAAcIkP/Re+DrRBt193lBZqQZA2\nv1rNsMYEnVBHFf/EDH8oDl9z6IESe8TlnwenB9JgT2z0vLFcw8dAY5pY7xdX\n2soR5TX6y6aSG8j925RjC8fXmMC10zv7qML9yy9TK8PkE9OmeBH6aWzRDUrw\nc5FBntlakkgPMl1tZrLcC25Mg0g+Vu4+ZPt6kBTuyHyoovr2KNpGvD+bHktS\ny838GGVWMYScoK52Tz9It98R0GQb3LYdKvW0TtlSikpnLpNuvSQRbr4f2r7o\nWuz9O1Ugmb4meX7ZdS1EsKf83HXmI6fBwPclLlihd14c2qua/wYW7QtnLbuJ\nmk6bRFM3vw7Ubue/9eFq7EaSAvphNmJVYIj2jhm3U/2vnSQC6Buet+4oforI\nnA7TYfGDwpcxbG6G9cUclItUOO/fDg5joRcpplgAgHB6kXp2J/iFYddnLrkT\nkKz71J64jUmn0C6b7V7ImAKX94HUgZ98brNrCDnKYWkTvMVoD9lHRhvqTE9B\nzJGzsb8zKZkQtq7Vy9YPHOLpzXiVs1NzUSVbGDXrzP4kZyXZvhaxFRnDopra\nuLUMclLZFJ57umY1lxaj4JhzYdhXm09r8hKq3uIyX/RhOL1SyryTS7xOL5sT\n1A17f+1pIpUdse7ph8QLFREvQ+NkfIsZgnQ9htESQRMTXvSMWJef8ciJ+7jG\nii8b\r\n=VhkU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChoaJQJ99PelcexRG0PUKhIaP6O+fl8+kBu20b+1d/EwIgem/DbTa/AWO08kpFFDwgChzl7DDbQpKn34ljjljl88Y="}]},"maintainers":[{"name":"alextewpin","email":"alex.tewpin@gmail.com"}],"_npmUser":{"name":"alextewpin","email":"alex.tewpin@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-promise_0.2.2_1593701905549_0.1467636702202868"},"_hasShrinkwrap":false},"1.0.0":{"name":"@alextewpin/use-promise","version":"1.0.0","author":{"name":"Alexander Tewpin","email":"alex.tewpin@gmail.com","url":"https://github.com/alextewpin"},"repository":{"type":"git","url":"git+ssh://git@github.com/alextewpin/use-promise.git"},"keywords":["promise","use-promise","async","use-async","react-native","react"],"license":"MIT","main":"lib/index.js","scripts":{"start":"webpack-dev-server","build":"rimraf lib && npm run build:babel && npm run build:tsc && npm run build:demo","build:babel":"babel src --out-dir lib --extensions .ts","build:tsc":"tsc --project tsconfig.npm.json","build:demo":"NODE_ENV=production webpack","lint":"eslint .","format":"prettier --write '**/*.*'"},"devDependencies":{"@babel/core":"^7.10.4","@babel/preset-env":"^7.10.4","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"3.10.1","@typescript-eslint/parser":"3.10.1","babel-loader":"^8.1.0","clean-webpack-plugin":"^3.0.0","eslint":"^7.8.1","eslint-config-prettier":"^6.11.0","eslint-plugin-react":"^7.20.6","eslint-plugin-react-hooks":"^4.1.0","html-webpack-plugin":"^4.3.0","prettier":"^2.0.5","react":"^16.13.1","react-dom":"^16.13.1","rimraf":"^3.0.2","typescript":"^3.9.7","webpack":"^4.43.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":">=16.8"},"gitHead":"d6c01f36ecaf0f0449e6e1de1e41020f391508b1","description":"Hook for declarative promises. Useful for fetching data, sending forms and doing other async stuff right in component. Tiny, easy to use, TypeScript definitions included. Inspired by outstanding [react-async](https://www.npmjs.com/package/react-async) lib","bugs":{"url":"https://github.com/alextewpin/use-promise/issues"},"homepage":"https://github.com/alextewpin/use-promise#readme","_id":"@alextewpin/use-promise@1.0.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-MU+5AbXXsKvgA2+IJqWzKhAq96k2vrBn565rUOLhGBqTAjcNYRAdHATaXm2t3qUF/kWp2/YmK8Rj9GU2D6ze2g==","shasum":"98929618ddeeebb8809d908de973909ebcc0c128","tarball":"https://registry.npmjs.org/@alextewpin/use-promise/-/use-promise-1.0.0.tgz","fileCount":6,"unpackedSize":13618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWfUUCRA9TVsSAnZWagAAkocP/0Ze04zdanSOjIAXF28I\nto3f6lhZSb8RhoOkkeKE3ZNy4/2yRk0J1/6mX8L2EoJ4MDhzfqf9FhG+6nA6\n0+XJCCG3usNKmSV5BfOH67B7dl97mKVeqZufDpz6ZZa/xgzK+48ucWAmjRW4\n5UxKOBNYpYBFA5i7PFezDQ1NkOX0hbJdWx01EMpp87Xsag6r/wHcGr7vrl6h\n6aTU27gbl705Bjev2fAR2PEtTR2gLqEafxZJgHAakZpqJILwKvKXUkxfFj9w\nxWDz3D12jm28ZR/mwuJTk+Ov1fZlLR0BFzhmfVvKY8haYDYTJfj05msq8Pxb\nYUakIYuddY2t31DQvkKsAdqKM1G3ljruagFfLRhqt1BGt2CpnGH2y51ez01D\nXt6hcS/tllp/OG6tnU85qkWU2WKCVys2eRI0a2IRXU7FJljopG8Jw+ODpc3Z\nJfoW4+faAicBNEk8aNWq7fdF5nX1TdGdNqbhNF6lmgh101kp+Vstp4zv3q4n\njjflO4drjse4BPAa85bKfMIpZvxBvB2JZQvzejcxMjv4rsuGNidSlAUvrip9\n8t5ETOo5nMhsZRgRkzDD7zepIn3mMceoYUBRB+JPvmPXyXt1EkaYPk0v+Ukf\nNOrqnTXtSHaowuhDLatCmVNxdZuVsOK9QeHBur+FU8f9adhGScAAnBjBmBJX\ndBW0\r\n=1EA1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsCyhtjtuPm6Z76vMxlgkwETVxPjc5Opsqp3BlQsWJuAIgPVc1uKPvUKzIiYtoktBR0iuzutjOXjNt87fwwdF0lYo="}]},"maintainers":[{"name":"alextewpin","email":"alex.tewpin@gmail.com"}],"_npmUser":{"name":"alextewpin","email":"alex.tewpin@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-promise_1.0.0_1599730964342_0.34798883081712306"},"_hasShrinkwrap":false},"1.0.1":{"name":"@alextewpin/use-promise","version":"1.0.1","author":{"name":"Alexander Tewpin","email":"alex.tewpin@gmail.com","url":"https://github.com/alextewpin"},"repository":{"type":"git","url":"git+ssh://git@github.com/alextewpin/use-promise.git"},"keywords":["promise","use-promise","async","use-async","react-native","react"],"license":"MIT","main":"lib/index.js","scripts":{"start":"webpack-dev-server","build":"rimraf lib && npm run build:babel && npm run build:tsc && npm run build:demo","build:babel":"babel src --out-dir lib --extensions .ts","build:tsc":"tsc --project tsconfig.npm.json","build:demo":"NODE_ENV=production webpack","lint":"eslint .","format":"prettier --write '**/*.*'"},"devDependencies":{"@babel/cli":"^7.12.10","@babel/core":"^7.10.4","@babel/preset-env":"^7.10.4","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"3.10.1","@typescript-eslint/parser":"3.10.1","babel-loader":"^8.1.0","clean-webpack-plugin":"^3.0.0","eslint":"^7.8.1","eslint-config-prettier":"^6.11.0","eslint-plugin-react":"^7.20.6","eslint-plugin-react-hooks":"^4.1.0","html-webpack-plugin":"^4.3.0","prettier":"^2.0.5","react":"^16.13.1","react-dom":"^16.13.1","rimraf":"^3.0.2","typescript":"^3.9.7","webpack":"^4.43.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":">=16.8"},"gitHead":"1c9906306750d2e70063d0f43c08fddb87767163","description":"Hook for declarative promises. Useful for fetching data, sending forms and doing other async stuff right in component. Tiny, easy to use, TypeScript definitions included. Inspired by outstanding [react-async](https://www.npmjs.com/package/react-async) lib","bugs":{"url":"https://github.com/alextewpin/use-promise/issues"},"homepage":"https://github.com/alextewpin/use-promise#readme","_id":"@alextewpin/use-promise@1.0.1","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Jp+WEC2Y3I4A3qP90b0CS3ObLz7fYD3jFMtWzLBeq/isWmb6VaGrOhlzCXeClUuzdhd2jH55qW7idDnRGtdlxg==","shasum":"c0998177c958497eb53809afa185ae40eaff4416","tarball":"https://registry.npmjs.org/@alextewpin/use-promise/-/use-promise-1.0.1.tgz","fileCount":6,"unpackedSize":13606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2NR6CRA9TVsSAnZWagAAmvcQAIIZ8iM072BwAjgqnhf1\nxSj2YHmq7+cyTPfJM5HSxwQeJ+nGmOVaKypUL1ALwOZjlPfBLUb0xEQCzm1n\nZ9ttYqI3v2bs+tkiBEznKVMtcPw9PqRg8JDgZhYtG5zT8C73IJXbnuJWuSi8\n7pgM3P+RgXHNDQ4OYP5kuF0hhE1PzrShmWee/D5/Zwm3vCeKikgShTsai0+W\nt4QXHP0q8g+StD33Bk2KbX7nFC7kJJpm33k9Zj810/8ZUUBR5lLYg1Tgc7l4\nxoofTFjEETMpVJPd/7lM+mceYluAgHAvbEIwWrsfiLwwyIvQkFcDNPviV4CJ\nyB3lOF8PEwmWuNaBtEeZ4pKzEfkcM90bd/3+jb5QLRYMOdF6Gu0NZmfGd/ed\nj6BrK+iLx/jM6a74tv4o7jcxU/jYgGeJBN/9f9jC1AoGn2g+x7uQWDpa/EGn\n68dcGFDuE+GJY0HLC2ZV1ivfQYfXsNwaM8fyd/VGHFi/402RC8JFJjCekCVh\nPpeVek3B9JfgeoerT/2fcU+WPhOOZDA2Gw0FTUqhIqP+rZJC60ENHxqByJzY\niFQau/7+QCAICBNEFsyiEfp3NOdqUddzHU857GOtu8vqnpBJO8Hzjx7gdXr7\nazruPIKN62P44BWinC9zXtp4st1Gburczrd70t9LBt1Sumxu1nlC5998hpxN\nxpQN\r\n=9d0B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBaCMvlYtXnWrHh1azdkXSfLZvCLCAV2aDfHsC7O0Nd8AiAePF4eczcSbR0/EbmBt34nlAA8gy2U6glKEAP9tkyw3A=="}]},"_npmUser":{"name":"alextewpin","email":"alex.tewpin@gmail.com"},"directories":{},"maintainers":[{"name":"alextewpin","email":"alex.tewpin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-promise_1.0.1_1608045690251_0.6802481896516239"},"_hasShrinkwrap":false},"2.0.0":{"name":"@alextewpin/use-promise","version":"2.0.0","author":{"name":"Alexander Tewpin","email":"alex.tewpin@gmail.com","url":"https://github.com/alextewpin"},"repository":{"type":"git","url":"git+ssh://git@github.com/alextewpin/use-promise.git"},"keywords":["promise","use-promise","async","use-async","react-native","react"],"license":"MIT","main":"lib/index.js","scripts":{"start":"webpack-dev-server","build":"rimraf lib && npm run build:babel && npm run build:tsc && npm run build:demo","build:babel":"babel src --out-dir lib --extensions .ts","build:tsc":"tsc --project tsconfig.npm.json","build:demo":"NODE_ENV=production webpack","lint":"eslint .","format":"prettier --write '**/*.*'"},"devDependencies":{"@babel/cli":"^7.12.10","@babel/core":"^7.10.4","@babel/preset-env":"^7.10.4","@babel/preset-react":"^7.10.4","@babel/preset-typescript":"^7.10.4","@types/react":"^16.9.41","@types/react-dom":"^16.9.8","@typescript-eslint/eslint-plugin":"3.10.1","@typescript-eslint/parser":"3.10.1","babel-loader":"^8.1.0","clean-webpack-plugin":"^3.0.0","eslint":"^7.8.1","eslint-config-prettier":"^6.11.0","eslint-plugin-react":"^7.20.6","eslint-plugin-react-hooks":"^4.1.0","html-webpack-plugin":"^4.3.0","prettier":"^2.0.5","react":"^16.13.1","react-dom":"^16.13.1","rimraf":"^3.0.2","typescript":"^3.9.7","webpack":"^4.43.0","webpack-cli":"^3.3.12","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":">=16.8"},"gitHead":"29071845ef5c83a7afd14a3aea5448e0b9b0f63f","description":"Hook for declarative promises. Useful for fetching data, sending forms and doing other async stuff right in component. Tiny, easy to use, TypeScript definitions included. Inspired by outstanding [react-async](https://www.npmjs.com/package/react-async) lib","bugs":{"url":"https://github.com/alextewpin/use-promise/issues"},"homepage":"https://github.com/alextewpin/use-promise#readme","_id":"@alextewpin/use-promise@2.0.0","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-MyzqHmfXxsWqNdVgGHjuMkNtVP8Lhh4DEWEofp8J0xi3aauDnli7rXYeTc/F7QwY/09NVq4ncVYHIJhvQtlmaA==","shasum":"e865eaaed0e831c31c9870b667d41f359e542d80","tarball":"https://registry.npmjs.org/@alextewpin/use-promise/-/use-promise-2.0.0.tgz","fileCount":6,"unpackedSize":14665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/XwRCRA9TVsSAnZWagAA3+4P/Awt4/EsG0if5i9/NJKL\n+yZZyFMb+nUmxEgNP7bw1mNEUdKZDivjD6V1/EZGHqfc0Rh39Cd6Rg05KoTo\n7O2reEZTyVNHCwzHvzrW3Le9sxXHCXC8rcx/XRORaodR7AvvfRqDN4e8LNzp\nQbcXztIBFYFduW68faGOEHtye/rSn+S1E8lUqp/7AhKuZHmDIJwUNrx4NlgI\nYFqRYA/xNgA1yZcuvxdLVqOTcnMY6e+zn8XPybcN4d5tgM4wDiiY0KPSawAg\n9LVqwel930yVVHfEkmvS819eezHi/c4XFTwZip7iYfrPCUJvNi63OCfsLzL6\nTl2JH4pAymXjQc4IwUPRFgk5LSJD2pj4NUQWq4lNMQ2CfZk6dFW1UFhaCW6D\naJOOKZLuJVIUufMw/oOmFHFsSIe+ZsxkBKIE/TNEt26SRKc65JoFlJzAQ1rl\nzThOwcsbpCLHGWVtUjbt9nZi9Zr+2LfOfiXHa+Wwrzs2oCvv0R0Hy2BsUgub\nmeL6fTnxTkRt/B1SZqt1rUPbS8ihA47m6Ewjz1Yi1X/7ZbvHijK3mmj/clbR\ni/uHCTCPklJQCYTf4MAG0aRQ8njt8enrGWT0pHALH2G1n+kMxRynDPoexIyB\nwnxDNV/kEWcqhKkScow/kCftTgLohx04RY5Su12xFRdcsi0rdFJPA0C/NydZ\nGmJ7\r\n=DlLW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC13nkbEStyPcGtVPiZ6qs6z3ZuTgIp9TxfDMUi5eKnMAiB+T1cTTigMHO+KhsMOeKLhmMOd422O+3OQdnY+cPPCOw=="}]},"_npmUser":{"name":"alextewpin","email":"alex.tewpin@gmail.com"},"directories":{},"maintainers":[{"name":"alextewpin","email":"alex.tewpin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-promise_2.0.0_1610447888650_0.9352445809483023"},"_hasShrinkwrap":false}},"time":{"created":"2020-07-02T10:21:38.880Z","0.2.0":"2020-07-02T10:21:39.023Z","modified":"2022-04-04T12:41:53.045Z","0.2.1":"2020-07-02T10:52:31.600Z","0.2.2":"2020-07-02T14:58:25.663Z","1.0.0":"2020-09-10T09:42:44.437Z","1.0.1":"2020-12-15T15:21:30.368Z","2.0.0":"2021-01-12T10:38:08.807Z"},"maintainers":[{"name":"alextewpin","email":"alex.tewpin@gmail.com"}],"description":"Hook for declarative promises. Useful for fetching data, sending forms and doing other async stuff right in component. Tiny, easy to use, TypeScript definitions included. Inspired by outstanding [react-async](https://www.npmjs.com/package/react-async) lib","homepage":"https://github.com/alextewpin/use-promise#readme","keywords":["promise","use-promise","async","use-async","react-native","react"],"repository":{"type":"git","url":"git+ssh://git@github.com/alextewpin/use-promise.git"},"author":{"name":"Alexander Tewpin","email":"alex.tewpin@gmail.com","url":"https://github.com/alextewpin"},"bugs":{"url":"https://github.com/alextewpin/use-promise/issues"},"license":"MIT","readme":"# use-promise\n\nHook for declarative promises. Useful for fetching data, sending forms and doing other async stuff right in component. Tiny, easy to use, TypeScript definitions included. Inspired by outstanding [react-async](https://www.npmjs.com/package/react-async) library.\n\n## Installation\n\n```\n$ npm i @alextewpin/use-promise\n```\n\n## Usage\n\n### By callback\n\nSimplest way to use `use-promise` is pass a `promiseThunk` in config and then `run` callback. This way it useful for sending forms and other cases when you need to do something as a respond to user actions.\n\n```js\nimport React, { useState } from 'react';\nimport usePromise from '@alextewpin/use-promise';\n\nimport { sendFeedback } from 'api';\n\nconst FeedbackForm = () => {\n  const [feedback, setFeedback] = useState('');\n\n  const { data, error, isPending, run } = usePromise({\n    promiseThunk: sendFeedback,\n    onResolve: () => {\n      window.location = '/thankyou';\n    },\n  });\n\n  return (\n    <form\n      onSubmit={(event) => {\n        event.preventDefault();\n        run(feedback);\n      }}\n    >\n      <textarea\n        disabled={isPending}\n        value={feedback}\n        onChange={(event) => setFeedback(event.target.value)}\n      />\n      <button disabled={isPending}>Submit</button>\n      {error && <div>Something is wrong</div>}\n    </form>\n  );\n};\n```\n\nIn this case there is no need to memoize `promiseThunk` or `onResolve`. However, `run` is still dependent on these parameters, and will update accordingly.\n\n### Data-driven\n\nIf you want to update promise state automatically based on you data, add a `useEffect` hook:\n\n```js\nimport React, { useMemo } from 'react';\nimport usePromise from '@alextewpin/use-promise';\n\nimport { fetchUser } from 'api';\n\nconst Profile = ({ userId }) => {\n  const promiseThunk = useCallback((id) => fetchUser(id), []);\n\n  const { data, error, isPending, run } = usePromise({ promiseThunk });\n\n  useEffect(() => {\n    run(userId);\n  }, [run, userId]);\n\n  if (isPending) return <div>Loading...</div>;\n  if (error) return <div>Something is wrong</div>;\n  return <div>Hi, {user.name}!</div>;\n};\n```\n\nNote that you must memoize every `usePromise` parameter in advance with `useCallback`, or you'll get an infinite loop, because running a promise will cause component to rerender.\n\n### On cancelation\n\nOnly one pending promise can exist in a hook state. If new promise is created for any reason (e.g. dependency update or `run` call), previous promise will be discared and `onResolve` or `onReject` will not be called on it. Also, this will happen if component is unmounted.\n\nHowever, `data` will never be discarded.\n\n### Demo\n\nCheck out live examples on [demo page](https://alextewpin.github.io/use-promise/) and take a look on their [source code](https://github.com/alextewpin/use-promise/blob/master/demo/App.tsx).\n\n## API\n\n### usePromise\n\n`<Data, Payload extends unknown[]>(config: PromiseConfig<Data, Payload>) => PromiseState<Data, Payload>`\n\nDefault export, hook that accepts `PromiseConfig` and returns `PromiseState`. In most cases there is not need to pass types manually.\n\n### interface PromiseConfig<Data, Payload extends unknown[]>\n\n| Parameter      | Type                                          | Desrciption                                                      |\n| -------------- | --------------------------------------------- | ---------------------------------------------------------------- |\n| `promiseThunk` | `(...payload: Payload) => Promise<Data>`      | Function that returns promise, can be called manually with `run` |\n| `onResolve?`   | `(data: Data, ...payload: Payload) => void`   | Function that will be called on promise resolution.              |\n| `onReject?`    | `(error: Error, ...payload: Payload) => void` | Function that will be called on promise rejection.               |\n\n### interface PromiseState<Data, Payload extends unknown[]>\n\n| Parameter   | Type                            | Desrciption                                                                               |\n| ----------- | ------------------------------- | ----------------------------------------------------------------------------------------- |\n| `data?`     | `Data`                          | Result of the resolved promise.                                                           |\n| `error?`    | `Error`                         | Error of the rejected promise.                                                            |\n| `payload?`  | `Payload`                       | Last started promise payload. Returned as array, as thunk may include multiple argumnets. |\n| `isPending` | `boolean`                       | Promise pending status.                                                                   |\n| `run`       | `(...payload: Payload) => void` | Run `promiseThunk` with given `Payload`.                                                  |\n","readmeFilename":"README.md"}