{"maintainers":[{"name":"dev","email":"i@izs.me"}],"dist-tags":{"latest":"1.0.1"},"author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"https://izs.me"},"description":"Like Promise.all, but save rejections until all promises are resolved","readme":"# promise-all-reject-late\n\nLike Promise.all, but save rejections until all promises are resolved.\n\nThis is handy when you want to do a bunch of things in parallel, and\nrollback on failure, without clobbering or conflicting with those parallel\nactions that may be in flight.  For example, creating a bunch of files,\nand deleting any if they don't all succeed.\n\nExample:\n\n```js\nconst lateReject = require('promise-all-reject-late')\n\nconst { promisify } = require('util')\nconst fs = require('fs')\nconst writeFile = promisify(fs.writeFile)\n\nconst createFilesOrRollback = (files) => {\n  return lateReject(files.map(file => writeFile(file, 'some data')))\n    .catch(er => {\n      // try to clean up, then fail with the initial error\n      // we know that all write attempts are finished at this point\n      return lateReject(files.map(file => rimraf(file)))\n        .catch(er => {\n          console.error('failed to clean up, youre on your own i guess', er)\n        })\n        .then(() => {\n          // fail with the original error\n          throw er\n        })\n    })\n}\n```\n\n## API\n\n* `lateReject([array, of, promises])` - Resolve all the promises,\n  returning a promise that rejects with the first error, or resolves with\n  the array of results, but only after all promises are settled.\n","license":"ISC","versions":{"1.0.0":{"name":"promise-all-reject-late","version":"1.0.0","description":"Like Promise.all, but save rejections until all promises are resolved","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"https://izs.me"},"license":"ISC","scripts":{"test":"tap","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags"},"tap":{"check-coverage":true},"devDependencies":{"tap":"^14.10.5"},"gitHead":"e9614a15b22f421aa97ff281d4e0f23681edbe98","_id":"promise-all-reject-late@1.0.0","_nodeVersion":"13.3.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-f5XvVl++12pEo7Sv7f7FGfzVuVpeY2msNKjn7nNcXyOSKh5uVu7IAzDO6RE9hDVoHJhxvg+gqEacwkZ891Se5g==","shasum":"4fa37515e2d78c3b0462414402a8debce62b8b9f","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/promise-all-reject-late/-/promise-all-reject-late-1.0.0.tgz","fileCount":7,"unpackedSize":123039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeBmldCRA9TVsSAnZWagAAaigP/2CarvNCbglNS0dgjOoH\n7ZuFo1cG+N8BkZct00TyEJjuB+5UUmv9TSnZogfEOGutvMqUTSRhvm3fOWsJ\n7TXs8zJ6SotDR9+xlxqi/skpYXfRdNjdaMvo9kYO5jaV84pstdbl17sPeYXd\nCudbAKp1sYodlaJyqpyfUd2PWUNe/VGLODmjLogHB4/bevT3tdjsdauKrUS4\n3VFw8sS1Fwp7P2YneNIK3C1TY/Yb66KysZO23VsQemCQFKXpQJMa9B6yj8zs\n5BQp+W5tM70IfW6OXD0+Vt2jWr9jmKmoWVEiL5usJT3zD7vRbeH3xQvSEgDD\nskI8vH8iJ+3EbEOWTGlIu7mX88Dp2KnHOoRUkOR03WJWuGnsTC8Uyqi0F1Xd\nFeFlaeNzynR/R2LcdRNiFOM+1xtzfAtVGF7TIp9UjgJwSNNkEMlkNzQqSiC7\n/AeqsAYoBBNmYWY2fvXdS9HQ4HfIGjI++jCYWX4I7sUvOjqfcwlEz8MwromA\nqeBAFPdvnB0F/q/AOOLkcdsO81jES7ts0nB7bDt0rDbztWWq34BSMDnNoSDo\nDE9q8u7g68tQcr3WmOQr4ro10sSbJVJZmz8DSJKCbVJ+FN0+GM+49oyyhIFl\nOjokXn5U8ASEdiZnmFnt51dr9A4fyjhehotJA6qSs7t2fBe86VnufijC971U\nv3Jc\r\n=lLwf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGxWLwVlkuPWd2o0AZd9fpm0JFQ6X201QSNfT3zNa2jAAiB9cebhOq7mNtQsTbOeyPtwQnEUIe0TXPZ+uBet95zi+g=="}]},"maintainers":[{"name":"dev","email":"i@izs.me"}],"_npmUser":{"name":"dev","email":"i@izs.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-all-reject-late_1.0.0_1577478492470_0.9438095135747766"},"_hasShrinkwrap":false},"1.0.1":{"name":"promise-all-reject-late","version":"1.0.1","description":"Like Promise.all, but save rejections until all promises are resolved","author":{"name":"Isaac Z. Schlueter","email":"i@izs.me","url":"https://izs.me"},"license":"ISC","scripts":{"test":"tap","preversion":"npm test","postversion":"npm publish","prepublishOnly":"git push origin --follow-tags"},"tap":{"check-coverage":true},"devDependencies":{"tap":"^14.10.5"},"funding":{"url":"https://github.com/sponsors/isaacs"},"gitHead":"c892a9db86650c9229ab4cc70395106684d6818a","_id":"promise-all-reject-late@1.0.1","_nodeVersion":"12.14.1","_npmVersion":"6.13.6","dist":{"integrity":"sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==","shasum":"f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2","tarball":"http://repository.ncinga.com/nexus/content/groups/npm-all/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz","fileCount":8,"unpackedSize":123171,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeL65kCRA9TVsSAnZWagAAas4P/2WFFJvncp0LWb3DbE0t\ndx9BhZEwY3W8V6ug8uKvph24LoQp1PakkncscKS7PsCVHyIslD+fi6V99AmI\nOmL2ECAMUd5N69Cs8eTi4tKTNtUoIslfCu0+SMlCAF11D7oBXSabdOxGQofA\nuksoHdCqGM6M1y2BGjK7FR8dSwvgbQCPaUzazZ5w7w4XqVxDlzbvNj2E5mSF\n5HjlT5q239uNQppwPIFpisyi9DKa0ran2N7F2ioZ1PHvhFCqo6rmL8tAQsxQ\n+3OA4eFD0FJCJuqd3MOaY66mkncfNpmPvQYMyigKBUdJJyrgNsB67yfaFduy\ndK198Bnva5kotttQ4EHxM6gkqRm2d9o1/sYmAUtDELgrVDxzeNl+yG+nCkho\n1ta4cY+wy1dTjqAYaprQJ855nIeGGnr3tvz4dEGX/5eyh5K+oYVOYRFvWFX6\nVlEhBmSRqamfW5N1ndMyY18FM+Vc12yu66yZ3z1FqbgEGqdf3EP3lwWqClpP\nbPdXANzHM1FIz1PGHC7IZFWXH5KV1z+JXXahg/d8CLzz0PY6jaBt4c2xDvo7\nLaEAm7kNMbdewKvuTuG7x2Kqyf1KwjpOhXMrq6h0rlFm0pRt0xAArQ9Sglw8\n2Vq9Ic9EEsSIpzA5iQ86O1xkTREGHTB3uTRXUJixXIGkhLkhBB+Uj9y+GoOh\nX+Dm\r\n=yF+m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF/1IP4kLDnU4PHzmimyai0AZOnjgZsFngMy8XugjyxMAiEA7bBDYTX+R5q/e2pxOakvYMskOvSWpktdo4HidEzZijM="}]},"maintainers":[{"name":"dev","email":"i@izs.me"}],"_npmUser":{"name":"dev","email":"i@izs.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-all-reject-late_1.0.1_1580183139628_0.5159334029276426"},"_hasShrinkwrap":false}},"name":"promise-all-reject-late","time":{"created":"2019-12-27T20:28:12.428Z","1.0.0":"2019-12-27T20:28:12.645Z","modified":"2022-05-13T12:19:20.510Z","1.0.1":"2020-01-28T03:45:39.762Z"},"readmeFilename":"README.md"}