{"_id":"@byungi/promise-to-signal","name":"@byungi/promise-to-signal","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@byungi/promise-to-signal","version":"0.0.1","description":"Convert a Promise to a AbortSignal","keywords":["abort","abortcontroller","abortsignal","promise","signal"],"main":"index.js","module":"index.mjs","types":"index.d.ts","exports":{"require":"./index.js","import":"./index.mjs"},"devDependencies":{"ascjs":"^5.0.1","prettier":"^2.7.1"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/skt-t1-byungi/promise-to-signal.git"},"homepage":"https://github.com/skt-t1-byungi/promise-to-signal","publishConfig":{"access":"public"},"dependencies":{"tap":"^16.3.0"},"scripts":{"cjs":"cat index.mjs | ascjs | prettier --stdin-filepath index.js > index.js","test":"tap","testw":"tap -w"},"gitHead":"81838007263a91ee84747f7e96a8e2c9e10628e4","bugs":{"url":"https://github.com/skt-t1-byungi/promise-to-signal/issues"},"_id":"@byungi/promise-to-signal@0.0.1","_integrity":"sha512-E+yEP5NYBX87yeCuKdO3UykAwekq5uuN4k5MSzMTFOTH0XvTtR9YsCs5Zo8eu0wIktIVZQ7gkXRMrbdNnjdq5A==","_resolved":"C:\\Users\\woowahan\\AppData\\Local\\Temp\\51e66ed9a3fa91e9ae906eed5ef75863\\byungi-promise-to-signal-0.0.1.tgz","_from":"file:byungi-promise-to-signal-0.0.1.tgz","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-E+yEP5NYBX87yeCuKdO3UykAwekq5uuN4k5MSzMTFOTH0XvTtR9YsCs5Zo8eu0wIktIVZQ7gkXRMrbdNnjdq5A==","shasum":"1e29a35c1ee9f00ed9b2ee43c2436b868002f5de","tarball":"https://registry.npmjs.org/@byungi/promise-to-signal/-/promise-to-signal-0.0.1.tgz","fileCount":6,"unpackedSize":5356,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDg7v6yvlQX3KNGjgGaq/Kh6/PQ8wldmePQuxF36BCXzAIhAMdMbIHpLAO12y+aKEnB56TiIqHasDIC2f+4oAFPoV/B"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFLqgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrMmg//VrBh3H9/EODFcOl+K4H1x78IinZdkMYScLilA8kXck8xnrPX\r\nx39E7IdVSgY1HIpfTDdAqxBeDuw4fUqL07WTmhNcP5L8RkLGKBChW2fDNcwT\r\nl3V6CIrpBOaYaff/LHTAYukEsQH8vD2e1C8/5YEsrZX5DZzalsKpbqRficCr\r\nk4J5BJz/MXRiILNa5qGisoXBNzMCypxJB34Hw081xR35f6gczd4zs10W/r9C\r\nkQraf8SAvpUgOpIZbWJFCFQGIFagwc99/Pf7BXN/n5OsIpzHyw2g1wzRGeIT\r\nMGzQUbp2QMbq+hcHSbh4BrBVbGli1yz/SDD3neQZk19zlZ/lWDvVZIe1vBTY\r\nSVIEjhYl9o35LkkLESwOS/y2T1zQpXPszvpxATXur//JuGAW9j5Q4vWbLeTj\r\n+OpSqWSaz4yMomqUnSZGx6dYrjo0ryIOjL0wxWfdp85h2jsNESp5iGUgj2cV\r\nAP9BNml3+tL7kd3r1WybWhmmxpFO7TfKMvd2QOleOfDDTaGF3nrhD7cx2GEm\r\n0QfmQqeZ8yLzPMvRmrHv4Wgj4nTePQLibcM7ykYs5SZWUTMmh/y+Y48ruKLK\r\nrrCzbvOvLcN+hT6CB7zzRY64fMw4y2v8Hon3piz6l/dXRYqpZXQ/CU0Z3F2w\r\nR0K2HSUtEhrmPYGY9vrS3xLhJfACCy103IU=\r\n=iC1X\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"skt-t1-byungi","email":"tiniwz@gmail.com"},"directories":{},"maintainers":[{"name":"skt-t1-byungi","email":"tiniwz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promise-to-signal_0.0.1_1662302880674_0.9237142153505888"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-04T14:48:00.611Z","0.0.1":"2022-09-04T14:48:00.840Z","modified":"2022-09-04T14:48:01.015Z"},"maintainers":[{"name":"skt-t1-byungi","email":"tiniwz@gmail.com"}],"description":"Convert a Promise to a AbortSignal","homepage":"https://github.com/skt-t1-byungi/promise-to-signal","keywords":["abort","abortcontroller","abortsignal","promise","signal"],"repository":{"type":"git","url":"git+https://github.com/skt-t1-byungi/promise-to-signal.git"},"bugs":{"url":"https://github.com/skt-t1-byungi/promise-to-signal/issues"},"license":"MIT","readme":"# @byungi/promise-to-signal\n\nConvert a Promise to a AbortSignal.\n\n## API\n\n### promiseToSignal(promise, options?)\n\n```js\nimport { promiseToSignal } from '@byungi/promise-to-signal'\n\nconst delayPromise = ms => new Promise(resolve => setTimeout(resolve, ms))\n\nfetch({\n    /* ... */\n    signal: promiseToSignal(delayPromise(3000)), // 👈 Add timeout.\n})\n```\n\n#### options.waitFor\n\n-   `settle` (Default) - Wait for Promise to be `resolved` or `rejected`.\n-   `resolve` - Wait for Promise to be `resolved`.\n-   `reject` - Wait for Promise to be `rejected`.\n\n### signalToPromise(signal, options?)\n\n```js\nimport { signalToPromise } from '@byungi/promise-to-signal'\n\nconst controller = new AbortController()\nconst cancel = () => controller.abort()\n\n/* ... */\n\nawait Promise.race([\n    asyncTask(),\n    signalToPromise(controller.signal), // 👈 Add cancellation.\n])\n```\n\n#### options.rejection\n\nInstead of resolved, it is rejected with abort's reason.\n\n```js\ntry {\n    await Promise.race([\n        asyncTask(),\n        signalToPromise(signal, {\n            rejection: true,\n        }),\n    ])\n} catch (err) {\n    if (err instanceof DOMException) {\n        /* ... */\n    }\n}\n```\n\nThis option does not support custom errors. Instead, do it like below.\n\n```js\nsignalToPromise(signal).then(() => {\n    throw new CustomError()\n})\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}