{"_id":"@aminnairi/promise-sequence","_rev":"2-3511e5a563676b8688b0edbca3937b59","name":"@aminnairi/promise-sequence","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"author":{"name":"Amin NAIRI","url":"https://github.com/aminnairi"},"bugs":{"url":"https://github.com/aminnairi/promise-sequence/issues"},"description":"Execute a sequence of functions that return a promise one after the other","homepage":"https://github.com/aminnairi/promise-sequence#readme","keywords":["promise","sequence","function"],"license":"GPL-3.0-or-later","main":"build/index.mjs","module":"build/inde.mjs","name":"@aminnairi/promise-sequence","version":"0.1.0","sideEffects":false,"scripts":{"test":"node index.test.mjs","build":"rollup --config rollup.config.js"},"devDependencies":{"rollup":"2.62.0","rollup-plugin-terser":"7.0.2"},"gitHead":"dbab86026cf9ab9686b31ce47a769d88d297d48d","_id":"@aminnairi/promise-sequence@0.1.0","_nodeVersion":"17.0.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-K2P4DHN2k4X7XQKNgeqNw2PqXdHFcLDU1lyJKKHzGEf/T01e7P9MOtCxqEE17+qI/PSiufAR8/FQvXbQ+mfPfw==","shasum":"776a33c4cfd9e9527f0de3ba66a73ad027573d6a","tarball":"https://registry.npmjs.org/@aminnairi/promise-sequence/-/promise-sequence-0.1.0.tgz","fileCount":4,"unpackedSize":39378,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhyjl3CRA9TVsSAnZWagAA1rQP/24UJ3EOi7hrmUCaTfhm\n+Tzia8q/LQV1dAzDH7KjnaiNLwAdsWkLgSjyVX1V8ljgRy+Mo95UVh3Z41S6\nh8441j58fCytdLXT1aJBIvF7DQ/grMYGa5XPPrqtIZLYWoJurkAFnqlG5PHy\nfa0CYi+4bdE4sg594JLxkRjRrkgdw51fsMXyDHeNt3xDQEkEs7j2m17pLiJW\n36fGearjvFbrK5hywmtfJJg0Uj+slC3acuZhjAY+ucQM1j8C5pyedQqLr8y0\nP/brq+4d087+RZopTxuREqPZNI47VauVVUxNcPe+ma2H5IJoYcGOpqStHAdu\nj1OajVExAZwFNoHzBk4QJftXO1uMlPDz2uctJdG1wJfBi66MlCCzAp6I/BmV\nKSrxdIi4M1w6KkPKCHR+IgJ44p/hrFgWW0W/T8IscOU/OCu1nEX9DEBxtO5V\n/qf7FKZOlyiDFUKYiuxLZHi91Gkag5tCAZ5k0TTREIVzeHo8ImnMzCiwJJVl\n3sYYKLPPZjG5NKnUQSICopVt/fItOkUvV9oV+OiPgnBsJ0FdwTcOVyrTaMMi\n//iMJduygyLPdEf+xeh/S2/4NfaQ8n3yxtWHldxb6X7+YU0IPqoBt62pgNEn\nY4kydgy1cbGWbXL93XKTeNx4ky8dXQpxwoCCSyB4muzoKGyTEUZwEkyN78Ry\n2YHq\r\n=SATq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCUF46Dpv7yf1B36sgn9Thwlj/eQ8Y+TG3QXjk2tPuI0AIhAJNsAmvbPpoFS2uhbeSn2zLIDDpcr7UMhFxqFHT+RklV"}]},"_npmUser":{"name":"aminnairi","email":"nairi.amin@gmail.com"},"directories":{},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-sequence_0.1.0_1640642934955_0.7317046147343014"},"_hasShrinkwrap":false},"0.2.0":{"author":{"name":"Amin NAIRI","url":"https://github.com/aminnairi"},"bugs":{"url":"https://github.com/aminnairi/promise-sequence/issues"},"description":"Execute a sequence of functions that return a promise one after the other","homepage":"https://github.com/aminnairi/promise-sequence#readme","keywords":["promise","sequence","function"],"license":"GPL-3.0-or-later","main":"build/index.mjs","module":"build/inde.mjs","name":"@aminnairi/promise-sequence","version":"0.2.0","sideEffects":false,"engine":{"node":">=14.0.0"},"scripts":{"test":"mocha index.test.mjs","build":"rollup --config rollup.config.js"},"devDependencies":{"chai":"4.3.4","mocha":"9.1.3","rollup":"2.62.0","rollup-plugin-terser":"7.0.2"},"gitHead":"427a8f7bdffbf41a5c6530f716885d4b77e18f74","_id":"@aminnairi/promise-sequence@0.2.0","_nodeVersion":"17.0.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-X7EfgDY4RhqRjUXo0R6w2vgJfbg4sn2xTXT1pYH6WaK3q8gZbUL1S8DpkAZE2mELOQFTG6N7FFnqOLFWex0PbA==","shasum":"16b246e997f029d99c25e479707250a41a61c3d1","tarball":"https://registry.npmjs.org/@aminnairi/promise-sequence/-/promise-sequence-0.2.0.tgz","fileCount":4,"unpackedSize":40488,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhyvSICRA9TVsSAnZWagAATnAQAJLmre5uAhrgEO4zDULU\nPH2QiLgnGljv83kVclLHTnxWWZxGhpTr/MCOM7kqIGglL+5MmB94XOtHCi2i\nLbyohH/l80UT5qVkwFiXw1Q/ltVhbdxpLgdEXo3wTX5YJd7Iv/pnSVcer9Uj\nJbcpNXaM+0otfqGWFj4uukANF9Pjp3u5b5Ljng6IjsaqJOV/aP/4VSqAEoU9\nOQOxCT7QYievSsY2pMlMAsrkN3fRZjHNwnQ8YYetk2M8JXbmIgm0EqyfGo+u\noKQeXTosDBV+AXrHToXVaXXvdhft3YBa5pfy7j0qcOd6cuqFcJO+gae6B8nz\nYkgdDs/MUcqOVjzADR/9f3EH4IyrX1Pzm8f8lKeTfj6TUCzso2J6cNpzBJCh\nzbpPqqwdz3XKDtFG1O24yfkIWY/g6EvCxLQ8dYCCjDe+7MIQ9lJhxSdLuwOC\nmfUY+6wSmTr79Y8WzG7gziJdiE3ejOiSa1fed/rOARk3159Uc8i3vynAN5Vp\ndBCWnXriTJW2W5dMBBH3UxkFv395BhTXghe/bLssUvNhRJVhjDQlpw/K/E5q\n9rmLQPI9puPZLF58TctTApr4+/9ZkozDt/TM1Vg9vFwG0yC5DLJX889cgFso\niPoNCg1pkhqVrW53sxVAtUmHSeZWhK+7onaPw9o6E2O3PVFWkW6KX8oJYxHQ\nNbIB\r\n=hCo5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFXTIqcHyf/+AlTpqrHMhQk2iK2p6w8GKxF+rlFSgc/AIgPE8smZI2YS0lwcIj5aF5JkQaipF29X32fR9lRtsPo5w="}]},"_npmUser":{"name":"aminnairi","email":"nairi.amin@gmail.com"},"directories":{},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-sequence_0.2.0_1640690824684_0.22401383920150364"},"_hasShrinkwrap":false}},"time":{"created":"2021-12-27T22:08:54.895Z","0.1.0":"2021-12-27T22:08:55.106Z","modified":"2022-04-04T13:49:20.647Z","0.2.0":"2021-12-28T11:27:04.797Z"},"maintainers":[{"name":"aminnairi","email":"nairi.amin@gmail.com"}],"description":"Execute a sequence of functions that return a promise one after the other","homepage":"https://github.com/aminnairi/promise-sequence#readme","keywords":["promise","sequence","function"],"author":{"name":"Amin NAIRI","url":"https://github.com/aminnairi"},"bugs":{"url":"https://github.com/aminnairi/promise-sequence/issues"},"license":"GPL-3.0-or-later","readme":"# @aminnairi/promise-sequence\n\nExecute a sequence of functions that return a promise one after the other\n\n[![Version](https://badgen.net/badge/npm/0.2.0/green)](https://www.npmjs.com/package/@aminnairi/promise-sequence/v/0.2.0) [![Size](https://badgen.net/bundlephobia/minzip/@aminnairi/promise-sequence@0.2.0)](https://bundlephobia.com/package/@aminnairi/promise-sequence@0.2.0) [![Treeshaking](https://badgen.net/bundlephobia/tree-shaking/@aminnairi/promise-sequence@0.2.0)](https://bundlephobia.com/package/@aminnairi/promise-sequence@0.2.0) [![Dependencies](https://badgen.net/bundlephobia/dependency-count/@aminnairi/promise-sequence@0.2.0)](https://www.npmjs.com/package/@aminnairi/promise-sequence/v/0.2.0?activeTab=dependencies) ![Vulnerabilities](https://badgen.net/snyk/aminnairi/promise-sequence)\n\n## Requirements\n\n- Node\n- NPM\n\n## Installation\n\n```bash\nnpm install @aminnairi/promise-sequence\n```\n\n## Usage\n\n### Simple\n\n```javascript\nimport {sequence} from \"@aminnairi/promise-sequence\";\n\nconst resolveLater = value => {\n  return new Promise(resolve => {\n    setTimeout(() => {\n      resolve(value);\n    }, 1000);\n  });\n};\n\nsequence([\n  () => resolveLater(1),\n  () => resolveLater(2),\n  () => resolveLater(3)\n]).then(([first, second, third]) => {\n  console.log(first);\n  console.log(second);\n  console.log(third);\n});\n```\n\n```\n1\n2\n3\n```\n\n### Advanced\n\n\n```javascript\nimport {sequence} from \"@aminnairi/promise-sequence\";\n\nconst resolveLater = value => {\n  return new Promise(resolve => {\n    setTimeout(() => {\n      resolve(value);\n    }, 1000);\n  });\n};\n\nsequence([\n  () => resolveLater(1),\n  ([first]) => resolveLater(2 + first),\n  ([first, second]) => resolveLater(3 + first + second)\n]).then(([first, second, third]) => {\n  console.log(first);\n  console.log(second);\n  console.log(third);\n});\n```\n\n```\n1\n3\n7\n```\n\n### Error\n\n```javascript\nimport {sequence} from \"@aminnairi/promise-sequence\";\n\nconst resolveLater = value => {\n  return new Promise(resolve => {\n    setTimeout(() => {\n      resolve(value);\n    }, 1000);\n  });\n};\n\nconst fail = value => {\n  return Promise.reject(new Error(`Failed to resolve ${value}`));\n};\n\nsequence([\n  () => resolveLater(1),\n  () => fail(2),\n  () => resolveLater(3)\n]).catch(({message}) => {\n  console.error(message);\n});\n```\n\n```\nFailed to resolve 2\n```\n\n### Example\n\n```javascript\nimport {sequence} from \"@aminnairi/promise-sequence\";\nimport {createInterface} from \"readline/promises\";\nimport {stdin as input, stdout as output} from \"process\";\n\nconst createQuestionFactory = ({createInterface, input, output}) => {\n  return ({message}) => {\n    const readlineInterface = createInterface({\n      input,\n      output\n    });\n\n    return readlineInterface.question(message).finally(() => {\n      readlineInterface.close();\n    });\n  };\n};\n\nconst question = createQuestionFactory({\n  createInterface,\n  input,\n  output\n});\n\nsequence([\n  () => question({message: \"What is your name? \"}),\n  ([name]) => question({message: `Hello, ${name}. What is your age? `}),\n  ([name, age]) => question({message: `So, ${name}, you are ${age} years old. What about your email? `})\n]).then(([name, age, email]) => {\n  console.log(`To sum up, ${name}, you are ${age} years old and your email is ${email}.`);\n});\n```\n\n```\nWhat is your name? John DOE\nHello, John DOE. What is your age? 42\nSo, John DOE, you are 42 years old. What about your email? john@doe.com\nTo sum up, John DOE, you are 42 years old and your email is john@doe.com.\n```\n\n## Changelog\n\nSee [`CHANGELOG.md`](https://github.com/aminnairi/promise-sequence/blob/production/CHANGELOG.md).\n\n## Contributing\n\nSee [`CONTRIBUTING.md`](https://github.com/aminnairi/promise-sequence/blob/production/CONTRIBUTING.md).\n\n## License\n\nSee [`LICENSE`](https://github.com/aminnairi/promise-sequence/blob/production/LICENSE).\n\n## Code of conduct\n\nSee [`CODE_OF_CONDUCT.md`](https://github.com/aminnairi/promise-sequence/blob/production/CODE_OF_CONDUCT.md).\n","readmeFilename":"README.md"}