{"_id":"p-forever","_rev":"11-fd942e80d770547c5d1bc5f2b545af1a","name":"p-forever","dist-tags":{"latest":"4.0.0"},"versions":{"1.0.0":{"name":"p-forever","version":"1.0.0","keywords":["promise","forever","infinitely","infinite","while","whilst","repeat","repeatedly","recursive","recursion","times","number","count","loop","iterate","serial","serially","async","await","promises","bluebird"],"author":{"url":"sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"p-forever@1.0.0","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/p-forever#readme","bugs":{"url":"https://github.com/sindresorhus/p-forever/issues"},"xo":{"esnext":true},"dist":{"shasum":"5fe51fafe1f9a02ae2c27a443f7ef38aa4247a7a","tarball":"https://registry.npmjs.org/p-forever/-/p-forever-1.0.0.tgz","integrity":"sha512-r6aW08b2OEABEzpJks11HsstLpz4GMQVP/VXzSjp7Bzyb2/sMViTuJhxtq8GYi5TTEt2JJbfIRrqvDJJjEqvDg==","signatures":[{"sig":"MEUCIGZmiverjZB+pqpfOrR2bFokwggwbgOp2td7NO6eDLJ3AiEA4g86DS2DqvFZDO1zDcsnt8XGgbPQEmEo0QG6GMgR4TI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"_from":".","files":["index.js"],"_shasum":"5fe51fafe1f9a02ae2c27a443f7ef38aa4247a7a","engines":{"node":">=4"},"gitHead":"387e33df8197142d3a0973479a123bf37bd2b323","scripts":{"test":"xo && ava"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/p-forever.git","type":"git"},"_npmVersion":"2.15.11","description":"Run promise-returning & async functions repeatedly until you end it","directories":{},"_nodeVersion":"4.6.2","devDependencies":{"xo":"*","ava":"*","delay":"^1.3.1"},"_npmOperationalInternal":{"tmp":"tmp/p-forever-1.0.0.tgz_1479462546373_0.31974302721209824","host":"packages-18-east.internal.npmjs.com"}},"1.0.1":{"name":"p-forever","version":"1.0.1","keywords":["promise","forever","infinitely","infinite","while","whilst","repeat","repeatedly","recursive","recursion","times","number","count","loop","iterate","serial","serially","async","await","promises","bluebird"],"author":{"url":"sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"p-forever@1.0.1","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/p-forever#readme","bugs":{"url":"https://github.com/sindresorhus/p-forever/issues"},"dist":{"shasum":"d8da0e9f88b3929e51596c2f8aa50cf2f1ad06ab","tarball":"https://registry.npmjs.org/p-forever/-/p-forever-1.0.1.tgz","integrity":"sha512-9IVAxJdPk88BFMvPjzE+WTZLmAt/FBa47mYY49E2elBki4yJJmQ57XHu3o3Dm1GMde+Xf2d+PzElJIogAPwkug==","signatures":[{"sig":"MEUCIQC04CEs0NSa/GwR0A7vms0Hv5NRHKvz3tjP3lTZtqEx1QIgI0D1DgQ4uWyoDXe2AkD6LedhucJkwg6O7WG0s+adNjg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"files":["index.js"],"engines":{"node":">=4"},"gitHead":"2fab8d075c4d2924e3fa0eb220a5db77248c8dc2","scripts":{"test":"xo && ava"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/p-forever.git","type":"git"},"_npmVersion":"5.0.0","description":"Run promise-returning & async functions repeatedly until you end it","directories":{},"_nodeVersion":"8.0.0","devDependencies":{"xo":"*","ava":"*","delay":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/p-forever-1.0.1.tgz_1496826253449_0.8289478863589466","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"p-forever","version":"2.0.0","keywords":["promise","forever","infinitely","infinite","while","whilst","repeat","repeatedly","recursive","recursion","times","number","count","loop","iterate","serial","serially","async","await","promises","bluebird"],"author":{"url":"sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"p-forever@2.0.0","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/p-forever#readme","bugs":{"url":"https://github.com/sindresorhus/p-forever/issues"},"dist":{"shasum":"c2da698473458418b98c52c0ad74fa612dde40fc","tarball":"https://registry.npmjs.org/p-forever/-/p-forever-2.0.0.tgz","fileCount":5,"integrity":"sha512-lhZ2DdfsnoTNdBLB5maJjwjq2VViPLPqY+V6Lxpn4U+vk6293/WDc931QfY1WHYzgYIomo0aQthAUgQ0bjsyzw==","signatures":[{"sig":"MEUCIAj0nnI6Q4uU8RUmroWJyaxtJ+GwLVZtW9q9l7eLSJyPAiEA3ipKtBgc/z3rx4kE/lImEdFCqEzdzDpT+bfMnGkKzys=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcjUi2CRA9TVsSAnZWagAALEEP/2oa8YOECbFPERbkHEw9\nr8AVmtEu+IjPQLEbdZbNGSWGhwvoYtCgvqoWnjHr7lF36x+u99eYOUzS+xmp\n/H0DXppeCu7rsRCCTuFGEdXKA2yKO15sQW9t2vFs3v+8Hphrvak8VHbBFfRU\nALQ8m1pvtfLkqd9wwi+weu5+LJUfENCXCCNDW63MgMV+Z80i9rFm1R4/hXMb\no37XIZYX056ARruXhY25mTJzHJTWUzqxL1Xa8AFzEKiPKwhxV+g9E8h/gjMW\nsEwMzqIk3CX13LN2yCJFXT/+j2Mv2oIXsMv5W/xhDMfTt2e2PM/rnVP+2GPg\nqNdGovTxWg/pyk9y7PgdXTTsVQDlhzOh3zi1pB2N1Ni7qxEmtd29Gv6G5cpo\nQJLR3ML8EHg3LoW29e0VILi/yhPZNxECUavtHO8R6lY5ehW7jsEOqUR8RQiN\nJIEMCo6+d866JgV2A0dGBre121oz3MQiFKFeyFjo9SM1dAyMB2GoaPqL/x79\nvJZnPDatg3PM6PXa8VitCRyFn7E8W+gSEDWlN/EZ/v1N/5S1NGt4KvNR5VLX\nKgzEK7SbBwq6BKhCHou+fRb8b22gT99iQuULG3UqoOt3ixzQhtd3cj3sy4lE\nvh2ZJsq7ik34YWY02oSNUiEuaxDs16QsX4HHWRQ6cqdCIkD7frGbKLidOxDe\nsJQI\r\n=9HZ2\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"6fbb113718c762bcacbfb223b20b295258b7cb07","scripts":{"test":"xo && ava && tsd-check"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/p-forever.git","type":"git"},"_npmVersion":"6.9.0","description":"Run promise-returning & async functions repeatedly until you end it","directories":{},"_nodeVersion":"8.15.0","_hasShrinkwrap":false,"devDependencies":{"xo":"^0.24.0","ava":"^1.3.1","delay":"^4.1.0","tsd-check":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/p-forever_2.0.0_1552763061473_0.5387940039981682","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"p-forever","version":"2.1.0","keywords":["promise","forever","infinitely","infinite","while","whilst","repeat","repeatedly","recursive","recursion","times","number","count","loop","iterate","serial","serially","async","await","promises","bluebird"],"author":{"url":"sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"p-forever@2.1.0","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/p-forever#readme","bugs":{"url":"https://github.com/sindresorhus/p-forever/issues"},"dist":{"shasum":"3b8d1de4b572c9c1f8ecf0346cc79e61d024b9ec","tarball":"https://registry.npmjs.org/p-forever/-/p-forever-2.1.0.tgz","fileCount":5,"integrity":"sha512-kqZrNBsD8fUPCpZLYJoHTiONQVrdkA2nKwSsTfIr5h7P8jGpSy+Vzkxu6nVcZcz3c/rSx/Ys3AACd/BkMKvqbw==","signatures":[{"sig":"MEUCIFAlD8gwLpLUp10Eckj9F69IWCOHEVBcM+APtvM06RZ6AiEA1eXvryW4Bf0NxNzexMweLuLIL9vEcILG4DMqRdflkHk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpEEcCRA9TVsSAnZWagAApC4QAImyaeNmV+uyem7sQIx/\n9J69o3DXCi7DHZy9o7QV4Qp7SELIG/ccXm40BdlOM+NkoysvvnB0Bih0IfhE\nM/Berc1B/NIMCRlICtjMz6yXiriFrLyEFlNixM3tKlBIO62mJMeRDuqvetkm\nAa9QQcpgEXdJhGXL0HwotswElaPbh96MwJbBs5G2QECzavbCEUoS2yqimGg5\nQNYOHVYJi6Ip3QTIlw6A0RVSnqWeAynsH/VPoh6s6I9qpvWnoOq7rjXk97Jp\niWAuOD35eMMK41oQhBl8AlZa1+HBEIonS+orPPpDZU4qZRs/jaf2QUJr9e/D\nZKNxiSrRndv8BUSBWaKOQ0ovKDjXztzerhbsbS4DZNglEHpmaF+rb4V7S+Ap\n4S6TWP6zoW8PUm0Vr/fjC0bXebS3DueVp/3S1XLLrjOedWx4rMAOKBMKqZ1j\nUvMKNe0mVwm/z0jso9ufcxHFP0Ar0cQvPwece0gZfVDNMWhYVvgLAakOZRoO\n+RsOD9feVCoEKINTJZ79n7Ouyr9XCg+83Y4UtXHUFGAITTOriKO7NBv9xgzb\nSZxwrlAvB7bpxCSLbe+zOFDpTkj1hwEz7zf3eVeHccCGookBWppfmFUv1jFE\nzEHhFiaR88PHf2rdr2AXhOKP9NCwKZmeCmlfpXFjd7iMD6qLe+VeulY2ZFg8\nAZ8K\r\n=YEik\r\n-----END PGP SIGNATURE-----\r\n"},"engines":{"node":">=8"},"gitHead":"bd60989e361756e17e5cfa80aca32db5c8a43970","scripts":{"test":"xo && ava && tsd"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/p-forever.git","type":"git"},"_npmVersion":"6.9.0","description":"Run promise-returning & async functions repeatedly until you end it","directories":{},"_nodeVersion":"8.15.0","_hasShrinkwrap":false,"devDependencies":{"xo":"^0.24.0","ava":"^1.4.1","tsd":"^0.7.2","delay":"^4.1.0"},"_npmOperationalInternal":{"tmp":"tmp/p-forever_2.1.0_1554268443679_0.14420752409326387","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"p-forever","version":"3.0.0","keywords":["promise","forever","infinitely","infinite","while","whilst","repeat","repeatedly","recursive","recursion","times","number","count","loop","iterate","serial","serially","async","await","promises","bluebird"],"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"p-forever@3.0.0","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/p-forever#readme","bugs":{"url":"https://github.com/sindresorhus/p-forever/issues"},"dist":{"shasum":"be9c43cd90f9bbb939e5b5df7f739d545842ca28","tarball":"https://registry.npmjs.org/p-forever/-/p-forever-3.0.0.tgz","fileCount":5,"integrity":"sha512-RRo40lnN2bH6hv0qFUueeVfo7Pgj8cPeMr36IcMFxhJ1fXLnCfTsgUT/mP9stUCLqxGljtUl2FBI6zvqA0dl0g==","signatures":[{"sig":"MEUCIQC3xnZT3ifk5L0lkF9f7n8fL6nyfn/9hzf3Zlp/pMB5VgIgCHLVNj31vUPJQdiulY7rdnRLnbVUtMfdUHdGbXlfJng=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4928,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgb+xXCRA9TVsSAnZWagAAqbkP/jpUMkvriJN6LFl1d9Kh\nnsZjdg7bx+TKNjpoU/eQd4RJAML52qw34yoab20GQf7ff/s1VYBpiY5PY8Yw\niiotzqaRsAk9zdtlcIksGrYjFoxgf0IjNSS4Cwuotmm+jBy/oS9kZ9R/emf+\n0QfX4SYY0RXTz5Ut2S2M4e/so1fExp1W1c6Ix/mcg3Q4VxvCL9oUjVlwFqMK\ncSR7UOsee+nR0D9XrmBJXayPEmUgn/p0xGfKScu0H0kcJpmMrTnpveUUCMoN\n5jhJr/RtGWfq4hUxCbQTeK4tlBwLfkkmdMFVsCsF20iiy1h7YOj8bZV2jsKQ\nDCbv4icrDabrk9H7UZAHvpV3rKPnpSr5vxqxjfP098k3Tcz/c6IIgoMWMHuC\nTALZzhzu+4D5c4z0q/e7cB2Bv8UFUqMkHoO5ZFbxumCK34/qorARrEaGkmxw\nGBMSF9Oj7vfMlou3tG/JM1kXlDnAfaknOOSFmSqoqtYlF6swhFv9vgHf9oVp\nKmUzVfTWzeAJ3pc9ZMlzw5+pNopUml5Ny63ffVhtU70U1IHvrIlITVG+JoYW\njP7cDVMn77uOqH5eVVRXn+YjvXRjd7pxb5ameGlKr7eU9VVzWy4+5J4MrK68\nOvNw7h/wzwwi/WajLcPOzMXmRCjtiRcks1c/VP6V1koglf3swEbt6bVEW2Fm\nbRR+\r\n=pXs2\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","engines":{"node":">=12"},"exports":"./index.js","funding":"https://github.com/sponsors/sindresorhus","gitHead":"26c7383618927d14f01efe947da771c00c6c449a","scripts":{"test":"xo && ava && tsd"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/p-forever.git","type":"git"},"_npmVersion":"6.14.10","description":"Run promise-returning & async functions repeatedly until you end it","directories":{},"_nodeVersion":"15.12.0","_hasShrinkwrap":false,"devDependencies":{"xo":"^0.38.2","ava":"^3.15.0","tsd":"^0.14.0","delay":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/p-forever_3.0.0_1617947735438_0.08319050103002201","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"p-forever","version":"3.0.1","keywords":["promise","forever","infinitely","infinite","while","whilst","repeat","repeatedly","recursive","recursion","times","number","count","loop","iterate","serial","serially","async","await","promises","bluebird"],"author":{"url":"https://sindresorhus.com","name":"Sindre Sorhus","email":"sindresorhus@gmail.com"},"license":"MIT","_id":"p-forever@3.0.1","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"homepage":"https://github.com/sindresorhus/p-forever#readme","bugs":{"url":"https://github.com/sindresorhus/p-forever/issues"},"dist":{"shasum":"a151f56e81adbaf94fb0a927aaceb00e62d1fa84","tarball":"https://registry.npmjs.org/p-forever/-/p-forever-3.0.1.tgz","fileCount":5,"integrity":"sha512-EWk+XHjCFLVHhjxfGbW7nQrWbQUcvBf98T0mzz9zk+8JVF9Iw8Fbd1k/qZ2JgMQpMOji+NQrIuBzg0vdNLjxDg==","signatures":[{"sig":"MEUCIQDcCSOLqBjjHeJbX5FqnD+Gulisi4MDHYVJdR3ngVkffwIgBBJ3kcshuvTGB/huWLumL9FtpVcsN7cjFStRSXVG2Ww=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4998,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqMOYCRA9TVsSAnZWagAAw6gQAKGpuJ8E6pN+poK9GYy0\nN5x1ICQGuEb+3XTs0AChFtdq0RoaNPaMHn5z7nnL144h4J190HCZ0oSIEjgQ\noWfJzLaI77KVfWUkr9tdxU0hOGSXdoh2Hk/2k6ex6/8dTnUyLnyBHDWQkWib\nqmO9cWkrX7kcr/1qR4Q1LYcfVwAwj3a/y0etjqvUzhGo1KdHI0VxROXhBIXV\nMepOtYn7gGz1LDNfgWoX4+wTif5Hef2jY0Lqgez/uGaZd2f51t2Fcglu3C/t\nnGIGO1oWYkeLzwXwX+Me+zjqrRQseu7Jbk/K7JPU4erAdP21fcjk4EwSCmCI\nRhWavS23s11bZLQSfjeh7xbH4QKQXvoe81o6OHbzE4WgGJ0SclDc+lAGK9bg\nL1hct/gSfHLZckCbOaiVwiuGMZiJ4n4uGokUzl3fi9QRW3M58i/SGUOeekoS\nNr45zhWChytxkn0sCwxZXiWru4Kg/JsNOCJ788EvGvy6IUpISI3JovIGEAbV\nc1gRYd6HPYmDnsceDR6eHSY9f/pI2h5flC5+4IeNqb5R/wP0PeAnI0OU0Pzk\nOmKfqPTzjkmOXiZpC+n5tteh23OFatZPrcS+dxDcRWkXTrHtvlsNGYQOJ1EZ\nWz5A+AON7yIWdqKWv7p593UwbHY93XaUnNCLvo3lttegXrdFbOJY8/2QYEmX\nDx+b\r\n=aiUO\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","engines":{"node":">=12"},"exports":"./index.js","funding":"https://github.com/sponsors/sindresorhus","gitHead":"bec208fac3c49cd9b1b2561cd702369753cae26b","scripts":{"test":"xo && ava && tsd"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"repository":{"url":"git+https://github.com/sindresorhus/p-forever.git","type":"git"},"_npmVersion":"7.10.0","description":"Run promise-returning & async functions repeatedly until you end it","directories":{},"_nodeVersion":"12.22.1","_hasShrinkwrap":false,"devDependencies":{"xo":"^0.38.2","ava":"^3.15.0","tsd":"^0.14.0","delay":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/p-forever_3.0.1_1621672855938_0.17819463255282897","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"p-forever","version":"4.0.0","description":"Run promise-returning & async functions repeatedly until you end it","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/p-forever.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{"types":"./index.d.ts","default":"./index.js"},"sideEffects":false,"engines":{"node":">=20"},"scripts":{"test":"xo && ava && tsd"},"keywords":["promise","forever","infinitely","infinite","while","whilst","repeat","repeatedly","recursive","recursion","times","number","count","loop","iterate","serial","serially","async","await","promises","bluebird"],"devDependencies":{"ava":"^6.4.1","delay":"^7.0.0","tsd":"^0.33.0","xo":"^1.2.3"},"gitHead":"50eea5ebbdc9b37de7d1580c8a6a35aaca592a29","types":"./index.d.ts","_id":"p-forever@4.0.0","bugs":{"url":"https://github.com/sindresorhus/p-forever/issues"},"homepage":"https://github.com/sindresorhus/p-forever#readme","_nodeVersion":"25.3.0","_npmVersion":"11.7.0","dist":{"integrity":"sha512-zDsVexuUQ+r5gGIezQjoLF+ZIsInmwsFr+WjTVt9ZGmLonj+brtObC8ErXsucbQtn+E0km+T/Wh36hSJZEoeng==","shasum":"7deed20e350968263bb036ab0a62f2d4ebdce987","tarball":"https://registry.npmjs.org/p-forever/-/p-forever-4.0.0.tgz","fileCount":5,"unpackedSize":6551,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDlDjlvtMGaC4O0Q0aHIbpHaCgT29e6TbCk5TqmCOMZ9AIhAN8UpPlzgY0K3fni1gvMIkb9kNgAHfoEeLfGv2foPrTy"}]},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/p-forever_4.0.0_1770047060797_0.40438644454466655"},"_hasShrinkwrap":false}},"time":{"created":"2016-11-18T09:49:08.453Z","modified":"2026-02-02T15:44:21.117Z","1.0.0":"2016-11-18T09:49:08.453Z","1.0.1":"2017-06-07T09:04:13.579Z","2.0.0":"2019-03-16T19:04:21.605Z","2.1.0":"2019-04-03T05:14:03.768Z","3.0.0":"2021-04-09T05:55:35.616Z","3.0.1":"2021-05-22T08:40:56.061Z","4.0.0":"2026-02-02T15:44:20.948Z"},"bugs":{"url":"https://github.com/sindresorhus/p-forever/issues"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"license":"MIT","homepage":"https://github.com/sindresorhus/p-forever#readme","keywords":["promise","forever","infinitely","infinite","while","whilst","repeat","repeatedly","recursive","recursion","times","number","count","loop","iterate","serial","serially","async","await","promises","bluebird"],"repository":{"type":"git","url":"git+https://github.com/sindresorhus/p-forever.git"},"description":"Run promise-returning & async functions repeatedly until you end it","maintainers":[{"name":"sindresorhus","email":"sindresorhus@gmail.com"}],"readme":"# p-forever\n\n> Run promise-returning & async functions until you end it\n\nThink of it like an async version of `while (true) {}`.\n\n## Install\n\n```sh\nnpm install p-forever\n```\n\n## Usage\n\nHere we create some numbered fixtures. The `createFixture()` function returns a Promise.\n\n```js\nimport pForever from 'p-forever';\n\npForever(async index => {\n\tindex++;\n\n\tif (index > 100) {\n\t\treturn pForever.end;\n\t}\n\n\tawait createFixture(index);\n\n\treturn index;\n}, {initialValue: 0});\n```\n\nor\n\n```js\nimport pForever from 'p-forever';\n\nlet index = 0;\n\npForever(async () => {\n\tindex++;\n\n\tif (index > 100) {\n\t\treturn pForever.end;\n\t}\n\n\tawait createFixture(index);\n});\n```\n\n## API\n\n### pForever(function_, options?)\n\nReturns a `Promise` that is fulfilled when `function_` returns `pForever.end`, rejects if any of the promises returned from `function_` rejects, or rejects with an `AbortError` if the signal is aborted.\n\n#### function_(previousValue)\n\nType: `Function`\n\nReceives the previously returned value. If a `Promise` is returned, it's awaited before calling `function_` again.\n\n#### options\n\nType: `object`\n\n##### initialValue\n\nInitial value to pass to `function_`.\n\n##### signal\n\nType: [`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal)\n\nAn `AbortSignal` to abort the loop from outside.\n\nWhen aborted, the promise returned by `pForever` rejects with an `AbortError`.\n\n```js\nimport pForever from 'p-forever';\n\nconst abortController = new AbortController();\n\nsetTimeout(() => {\n\tabortController.abort();\n}, 500);\n\nawait pForever(async () => {\n\tawait someWork();\n}, {signal: abortController.signal});\n```\n\n### pForever.end\n\nSymbol used to end the loop.\n\n## Related\n\n- [p-times](https://github.com/sindresorhus/p-times) - Run promise-returning & async functions a specific number of times concurrently\n- [p-whilst](https://github.com/sindresorhus/p-whilst) - Calls a function repeatedly while a condition returns true and then resolves the promise\n- [More…](https://github.com/sindresorhus/promise-fun)\n","readmeFilename":"readme.md"}