{"_id":"phin-retry","_rev":"6-a97195fa2867f879031a31c02372d5e2","name":"phin-retry","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"phin-retry","version":"1.0.0","keywords":["phin","http","https","request","request-promise","ajax","url","uri","fetch","retry","delay"],"author":{"name":"Anudeep","email":"asa.anudeep4@gmail.com"},"license":"MIT","_id":"phin-retry@1.0.0","maintainers":[{"name":"asaianudeep","email":"asa.anudeep4@gmail.com"}],"homepage":"https://github.com/ASaiAnudeep/phin-retry#readme","bugs":{"url":"https://github.com/ASaiAnudeep/phin-retry/issues"},"dist":{"shasum":"d152bd8d1a7dd7a101edfde731c05da90e9b6965","tarball":"https://registry.npmjs.org/phin-retry/-/phin-retry-1.0.0.tgz","fileCount":4,"integrity":"sha512-STAPvRsDHJypfxa4xvQKU/PDQ/QLI2hbXqlHpVLhTqP95e5ask0J9JgQUcHDzKUP9TyKRW3/B7e3phMmO4/FnQ==","signatures":[{"sig":"MEYCIQDWnKWefixYPJPXDUW2d7an+VHUThGwEYisy4x+049pMAIhAJTXCEDdyEBy9HfuZj+zC2WTs+p1pAcxbOesPXslXuud","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9267,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqY1bCRA9TVsSAnZWagAAqe0P/iWPv8DNXAYt93FXUijq\n6ptcPa+8SIxpPMlDUKVWSgFUfQHtMOZ1F1RihWAeftUl/sI18pzU9vQQs19p\nKBl/1irGRiWFaDr0r0t4DdgDaVGnPxK/CFHwOn4k5x54kYD9WTKVnj96XgeR\n5fdfrimJ52yBU2I80IZPbZAMnX3T9cUXlsjd05f0PfNsxxao5USb+TzF29yZ\n0K3W1folzVtGDbXVtyfrlQmTAw75diX22187Sap+iETqYW1AKVjjyepJSDmu\nTZaCqQ90ItabLXkO6j6tz2z6iFapf/ObhB7P8aDZzljnEKZ3vumZWc4ZVLK0\nx9A/EFXPVRVuFaX0DH0KEhw8TR0eTASYFJ3iOCPYizdJGzL93xjUmaGfeVag\ng/fwPd8vd56gLDYKN4TDx6ENFiUn2Dp5dU5q/QgZNcDBOJ3+rozJyQ4mOVDD\nIJdGj6ZinToBgcStZ8CypVYgiV020tiwC3fBnhePKmug+UO2h5KKcZl/E0sb\nom5EvvXmfba68iwQmPZaaT7VsyiKr95xPNKQ5uroZcoDExpzThRJL6BhGx/M\n2snc393fTVF685/QRnQyrbgugd204zzcnQdiIzzMJ0lG8+q2kKj+euo3vaIW\nr43qldE2RfLJgz8pGqBNDVF5npbS5fnIWjmKhh7Mv71WwXIpY1CfrqStkMLz\nRvc5\r\n=Zw4s\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","engines":{"node":">=8"},"gitHead":"3f965bcddbe1e7473937883e1aba1f304b95d644","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"asaianudeep","email":"asa.anudeep4@gmail.com"},"repository":{"url":"git+https://github.com/ASaiAnudeep/phin-retry.git","type":"git"},"_npmVersion":"6.12.1","description":"The ultra-lightweight Node.js HTTP client","directories":{},"_nodeVersion":"12.13.1","dependencies":{"phin":"^3.4.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/phin-retry_1.0.0_1588170074983_0.68161648576117","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"phin-retry","version":"1.0.1","keywords":["phin","http","https","request","request-promise","ajax","url","uri","fetch","retry","delay"],"author":{"name":"Anudeep","email":"asa.anudeep4@gmail.com"},"license":"MIT","_id":"phin-retry@1.0.1","maintainers":[{"name":"asaianudeep","email":"asa.anudeep4@gmail.com"}],"homepage":"https://github.com/ASaiAnudeep/phin-retry#readme","bugs":{"url":"https://github.com/ASaiAnudeep/phin-retry/issues"},"dist":{"shasum":"697aad2bbd2a9b6347e84fd88d123534f74cf850","tarball":"https://registry.npmjs.org/phin-retry/-/phin-retry-1.0.1.tgz","fileCount":4,"integrity":"sha512-C9jZoe8uw9Kfj1G2UU5tDPJS8eywyaU64MzDzF545+Lq31d4UwXVPQijrFsT3vVqu42O7fQW1vClflGxHJXRRQ==","signatures":[{"sig":"MEQCIFxJaRqK4kOb+hJ7/Vbtj2R0Rm0J9BVUYl4q+RfxR1k7AiBDZay/LpKaDZEDWVOKFOgU+12a5pU99SQqrbmBBneyrg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12838,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJXKhCRA9TVsSAnZWagAA2BsP/1bn+JBFs1JKSUW73xk3\ni3VH28wPvTOB98Mh1S7NHUERYlMyHznLCv7kXgZhi0BKny9KD5q813C/nNyK\nlX0w2puLdu7Sg25nBs2lR2tlLWv6vjSHdozr3r1RLHId77jhhQVkxK/zLYac\nJIuUetbgnxXSUp6KG8U4QaheOg0cV2USr9YWEV15Bj2KigHK50B9PkPbMjIQ\nkw8TsmvHeLURob9rK7dnxYqaKMR6+7izQHVLxV2tSfahsNM6RWSbZveEvk2N\nYrBxTJTb0eQ5MnMl1WFJ/x6UKycJ88ttyRFv0VbvhPOO2sVFDDDibccNCr3Q\n1WDLJRsdnz4j1bzHoDqOnDDR0K9jUXHP3zqPBr26PZN4rlkZJ7BYCQRAT/Ay\nAbvNDqnDoiZEBV6r8MHfl4aaxj4ETsEnofr6UnrEXUXUtRu0qgPASDgrdPEu\nk1BPoZAXW2okHKI6HUPBA7+SC58TCWjjn9flX5/moquTD48ipaxLaj/TpILs\nGUFMf7HiNGuv5xLdyzmgl1+/sxbO/47OiPCQPbq010Ymf4PfChdoQxVLFGIU\nICWd2zHedEn6A0C0VajwKEtgGXk1FMLivLiDtCrt4BEvKK/0uB2N7dahksSj\nDjSIwLBBvncc0lrdPSwDgt602bCHRKTk0xml1xipAiyAJIRezMYzN80kmdvT\nR70C\r\n=6Zc0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","engines":{"node":">=8"},"gitHead":"31cc02cdbb940a397f10fae9489f51213f8e5cb4","scripts":{"test":"uvu tests","coverage":"c8 --include=src npm test && c8 report --reporter=text-lcov > coverage/lcov.info"},"_npmUser":{"name":"asaianudeep","email":"asa.anudeep4@gmail.com"},"repository":{"url":"git+https://github.com/ASaiAnudeep/phin-retry.git","type":"git"},"_npmVersion":"6.14.5","description":"The ultra-lightweight Node.js HTTP client","directories":{},"_nodeVersion":"12.18.1","dependencies":{"phin":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^7.2.1","uvu":"^0.3.1","pactum":"^1.0.26"},"_npmOperationalInternal":{"tmp":"tmp/phin-retry_1.0.1_1596289696917_0.7599186281726593","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"phin-retry","version":"1.0.2","keywords":["phin","http","https","request","request-promise","ajax","url","uri","fetch","retry","delay"],"author":{"name":"Anudeep","email":"asa.anudeep4@gmail.com"},"license":"MIT","_id":"phin-retry@1.0.2","maintainers":[{"name":"asaianudeep","email":"asa.anudeep4@gmail.com"}],"homepage":"https://github.com/ASaiAnudeep/phin-retry#readme","bugs":{"url":"https://github.com/ASaiAnudeep/phin-retry/issues"},"dist":{"shasum":"23395413b54ea8c497bba047b549f98605ee6965","tarball":"https://registry.npmjs.org/phin-retry/-/phin-retry-1.0.2.tgz","fileCount":4,"integrity":"sha512-Pgd8IVvHGLQQ8tWht2abynAlnS+/2Dwt//K93cgtKuFRLELySHVLzvl8Ivunc/P61qyz56XmKt3DHa+ae0epfg==","signatures":[{"sig":"MEUCIQCWuoBNDlQWSMoNcseprPEPFb/xvPy5aT8pY9q/FrC4uAIgW7QSWRF6IrVLlFRe4vvC+CYBzHD2Pf4HB0EsvK3dmLM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12977,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJp/OCRA9TVsSAnZWagAAvKEP/RW6Rtghvrqt8VSun9Sj\nQp2OfQCu05eBM8cGjSiH5JQ34du1w3lTCNhVZ1FlRVSvu2ei7qCvVBWqeiih\ny2u+Bncv59475RuwbicU5CvDrK3HQrWa9yGkBhZHcdGm312bCrLJ0yn/Jtaa\nsfgaCSG6G9wxmM+INktmenwI5u30kQjWdvCfA4RrrJhLvrwCk6h9uskqGZTZ\nuYgOuFfv98Nxz/mUkIzGtqXE9vV/SjVnRIu2FePaaAcQgl67Tk3WZTWwHDya\nE5hOEFMhR10Eojfaig+A1hqWICPprkAVXX6glXH1kdVRL+QA6ogc10g2IHBI\nmz+8UwP2WxUnU1sxxQTUy+xqmKerE8bVwfRA+r03LMwZh46E5kyY1s+5uy2Z\nlonDCohTSYFeWUgAWUZJd5yz2XvAVALKg3Ry+yi35rF4ZrMDI3CEPKhxC2Nz\nuzHrfOoVuynxgWAXBI01/INppViPyd2F2QYzvx3j4jA7FeC9J8ARVv4dF4XQ\n5JS+VqR6+UsBBr7JKXVLEczNLTZj0Ywq5cTSKpk+XnWIlp8WaJWFt0EKwLYH\neWtXbUOutSovIRCFMKKVgWOi1ojsut+1IqxbVr+5SzwYo6LUYbeo98r5hF6A\nJySjtVLdU7Zin/Pt9ZpwZ/HN1mNZNppF3exTHIfDJHdtKnwAReMWU7zSseUZ\nr7qR\r\n=xQku\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","engines":{"node":">=8"},"gitHead":"6f97450e4fa8d7298f93dec136dc416f4838c7e6","scripts":{"test":"uvu tests","coverage":"c8 --include=src npm test && c8 report --reporter=text-lcov > coverage/lcov.info"},"_npmUser":{"name":"asaianudeep","email":"asa.anudeep4@gmail.com"},"repository":{"url":"git+https://github.com/ASaiAnudeep/phin-retry.git","type":"git"},"_npmVersion":"6.14.5","description":"The ultra-lightweight Node.js HTTP client","directories":{},"_nodeVersion":"12.18.1","dependencies":{"phin":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^7.2.1","uvu":"^0.3.1","pactum":"^1.0.26"},"_npmOperationalInternal":{"tmp":"tmp/phin-retry_1.0.2_1596366798376_0.922603128842509","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"phin-retry","version":"1.0.3","keywords":["phin","http","https","request","request-promise","ajax","url","uri","fetch","retry","delay"],"author":{"name":"Anudeep","email":"asa.anudeep4@gmail.com"},"license":"MIT","_id":"phin-retry@1.0.3","maintainers":[{"name":"asaianudeep","email":"asa.anudeep4@gmail.com"}],"homepage":"https://github.com/ASaiAnudeep/phin-retry#readme","bugs":{"url":"https://github.com/ASaiAnudeep/phin-retry/issues"},"dist":{"shasum":"b5557c64e887574d75b0ba58a443e883847b2d1c","tarball":"https://registry.npmjs.org/phin-retry/-/phin-retry-1.0.3.tgz","fileCount":4,"integrity":"sha512-pQhFQP8UTo6EeDKdC6D0kYaIfodJa047aCXnWUed8E4026tHhdW1+BvWt7fNUKdllQ0Pton3dRVvTt3vx1tSiw==","signatures":[{"sig":"MEYCIQCOVXVBgHOdn8OfDjaM/Jqo2EV2WHCW3BnLoqO59k+Q+AIhAO0VRuw2IjoEbugiXJNfecTJr6NlfO2dlFIYmpo84JnC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfK6xSCRA9TVsSAnZWagAAmvwP/0pVS44jcCyFf4vzvkxA\nftoXkxYq1vLtU6mKLnXWY01y2SSPud3EIzbs4Psol6PrcSXexASm7J6sn845\nBXNdkufiWIaVwZCXVX2CmwlpCea7muGOCSZJVDDbIuNTI8+fM0rC/ui4CIlM\nJ4e5sA9/vgOv4kQVV0+dpz5UDlayyeGJwHg4NLNR5dx7k3dQ8GqFKrw36zz5\npgi60BstWlEw6gas/5ndc1VeXU2KI7W0/VjwxtW+uy5ijJj3RbPVpy/bVHLJ\n6+EP+nH5CV8DqUBKGkxMYitPVerIHpXxId5oqsHs1LyWcyOM4j4UkpJVvzur\nrFsfT5IoLiIRkj+AwORIfSnp+Rp+urYd26U65egGeD6AXMe99vUpRFulnowP\nvPcUcEbh3QTumB8HzhdAaK894gpH6cFPLfz0Z7oD8KXVyE0TuGJFrUPb70b4\njKvR3T8dvbxA8J6jXS+X7ERj7ehmigrJgKycwv+r8cdKswf/0ucOkyJ2nI1f\nmP2vhyFAE3HtM0Z5L3DBKyZ++Cu3TCILP06Gv6eav7ZzRnaC8ACiI8S/9gm1\nYDpvALFp6rPlO1vtslb3PyScFZSfnIRxRn4NVxmhJ8yKeG/3IIMueuOIBOZi\nvEGCH0uRVpe+L48ZTmB7vBdVJ8rsAohN+JgVifW+vRYzi5OpEnP2yd7sQKva\nnapp\r\n=H1Te\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","engines":{"node":">=8"},"gitHead":"9621c82e6bf567a6fd6641f98d9e5cf539e9dab1","scripts":{"test":"uvu tests","coverage":"c8 --include=src npm test && c8 report --reporter=text-lcov > coverage/lcov.info"},"_npmUser":{"name":"asaianudeep","email":"asa.anudeep4@gmail.com"},"repository":{"url":"git+https://github.com/ASaiAnudeep/phin-retry.git","type":"git"},"_npmVersion":"6.14.5","description":"The ultra-lightweight Node.js HTTP client","directories":{},"_nodeVersion":"12.18.1","dependencies":{"phin":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^7.2.1","uvu":"^0.3.1","pactum":"^1.0.26"},"_npmOperationalInternal":{"tmp":"tmp/phin-retry_1.0.3_1596697682307_0.8804746843712659","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"phin-retry","version":"2.0.0","description":"The ultra-lightweight Node.js HTTP client","main":"src/index.js","scripts":{"test":"uvu tests","coverage":"c8 --include=src npm test && c8 report --reporter=text-lcov > coverage/lcov.info"},"repository":{"type":"git","url":"git+https://github.com/ASaiAnudeep/phin-retry.git"},"keywords":["phin","http","https","request","request-promise","ajax","url","uri","fetch","retry","delay"],"author":{"name":"Anudeep","email":"asa.anudeep4@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/ASaiAnudeep/phin-retry/issues"},"homepage":"https://github.com/ASaiAnudeep/phin-retry#readme","dependencies":{"phinx":"1.1.0"},"engines":{"node":">=8"},"devDependencies":{"c8":"^7.2.1","pactum":"^2.0.7","uvu":"^0.3.1"},"_id":"phin-retry@2.0.0","gitHead":"c121f2b8171721e47f190eb63f8c4e7e3e0322e8","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-iV4Yi0hcd8xyHxam1LSO0lP3PFsKbwo6Cz4CA2dLN0uJJwkdc3WcxfDjo0NsOAGSJfbyuPZ803mZ8Z6c7wJBJw==","shasum":"3e46f0f018656b70c50b2671383557319c483202","tarball":"https://registry.npmjs.org/phin-retry/-/phin-retry-2.0.0.tgz","fileCount":4,"unpackedSize":12481,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDUykSM3BUovYQJQhWSlSZEMwR7gPDNk6nlBxB8FXQj+gIhALDVqTE+lernDQaW5ZSdB/I+tTy85CaiTm3IAQUsdzoD"}]},"_npmUser":{"name":"asaianudeep","email":"asa.anudeep4@gmail.com"},"directories":{},"maintainers":[{"name":"asaianudeep","email":"asa.anudeep4@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/phin-retry_2.0.0_1766305337176_0.028505416092005298"},"_hasShrinkwrap":false}},"time":{"created":"2020-04-29T14:21:14.983Z","modified":"2025-12-21T08:22:17.582Z","1.0.0":"2020-04-29T14:21:15.101Z","1.0.1":"2020-08-01T13:48:17.012Z","1.0.2":"2020-08-02T11:13:18.476Z","1.0.3":"2020-08-06T07:08:02.414Z","2.0.0":"2025-12-21T08:22:17.361Z"},"bugs":{"url":"https://github.com/ASaiAnudeep/phin-retry/issues"},"author":{"name":"Anudeep","email":"asa.anudeep4@gmail.com"},"license":"MIT","homepage":"https://github.com/ASaiAnudeep/phin-retry#readme","keywords":["phin","http","https","request","request-promise","ajax","url","uri","fetch","retry","delay"],"repository":{"type":"git","url":"git+https://github.com/ASaiAnudeep/phin-retry.git"},"description":"The ultra-lightweight Node.js HTTP client","maintainers":[{"name":"asaianudeep","email":"asa.anudeep4@gmail.com"}],"readme":"# phin-retry\n\n![Build](https://github.com/ASaiAnudeep/phin-retry/workflows/Build/badge.svg?branch=master)\n![Coverage](https://img.shields.io/codeclimate/coverage/ASaiAnudeep/phin-retry)\n\nThe ultra-lightweight Node.js HTTP client.\n\n> This is a wrapper around [Phin](https://github.com/ethanent/phin) that adds support for retry & looks like [request-promise](https://github.com/request/request-promise).\n\n## Install\n\n```shell\nnpm install phin-retry\n```\n\n## Usage\n\n```javascript\nconst request = require('phin-retry');\n\n// should be used in async context\nconst response = await request.get('https://jsonplaceholder.typicode.com/posts/1');\n\nawait request.post({\n    url: 'http://localhost:9393/api/post',\n    body: { msg: 'input' },\n    retry: 3,\n    delay: 500\n  });\n\n// custom retry, error & delay strategy\nconst response = await request.delete({\n    url: 'http://localhost:9393/api/delete',\n    auth: {\n      user: 'name',\n      pass: 'secret'\n    },\n    errorStrategy: ({response, error, options}) => {\n        if (error) return true;\n        if (response.statusCode >= 400) {\n          return false;\n        }\n        return true;\n      },\n    retryStrategy: ({response, error, options}) => {\n        if (error) return true;\n        if (options.method === 'POST') return false;\n        if (response.statusCode >=200 && response.StatusCode < 300) {\n          return false;\n        }\n        return true;\n      },\n    delayStrategy: ({response, error, options, delay}) => {\n        if (error) return 5000;\n        return 2000;\n      },\n  });\n\n```\n\n* It supports **get**, **post**, **put**, **delete**, **patch** HTTP methods.\n* By default, this library will retry once on failure (StatusCode >= 500 & network errors) with a delay of 100 or 1000 milliseconds. Override this behavior with custom retry strategy function.\n* Responses with status codes < 200 & >= 300 are thrown as errors. Override this behavior with custom error strategy function.\n* All options from **phin** are supported. Refer [Phin](https://www.npmjs.com/package/phin) for more usage examples.\n* Access underlying **phin** library through `request.phin`.\n\n## API\n\n### Defaults\n\nAccess default options through `request.defaults`.\n\n| Option              | Type     | Description                        |\n| ----------------    | -------- | ---------------------------------- |\n| `retry`             | number   | max no of times to retry (1)       |\n| `delay`             | number   | delay between retries (100ms)      |\n| `networkErrorDelay` | number   | delay for network errors (1000ms)  |\n| `retryStrategy`     | function | default retry strategy function    |\n| `delayStrategy`     | function | default delay strategy function    |\n| `errorStrategy`     | function | default error strategy function    |     \n\n\n### Options\n\nIt supports all options from **phin**, refer [Phin](https://www.npmjs.com/package/phin) for more details.\n\n| Method           | Type     | Description                     |\n| ---------------- | -------- | ------------------------------- |\n| `url`            | string   | request url                     |\n| `qs`             | object   | query parameters                |\n| `auth`           | object   | authentication object           |\n| `headers`        | object   | headers object                  |\n| `retry`          | number   | max no of times to retry        |\n| `delay`          | number   | delay between retries           |\n| `body`           | any      | equivalent to data in phin      |\n| `fullResponse`   | boolean  | returns full phin response      |\n| `retryStrategy`  | function | custom retry strategy function  |\n| `delayStrategy`  | function | custom delay strategy function  |\n| `errorStrategy`  | function | custom error strategy function  |     \n","readmeFilename":"README.md"}