{"_id":"@as-any/abortable-promise","_rev":"6-90551cf081e1f1ea38c2576c9e332a06","name":"@as-any/abortable-promise","dist-tags":{"latest":"0.0.7"},"versions":{"0.0.3":{"name":"@as-any/abortable-promise","version":"0.0.3","description":"An extension of native Promises with true abort capabilities via AbortSignal.","repository":{"type":"git","url":"git+https://github.com/as-any/abortable-promise.git"},"keywords":["TypeScript","JavaScript","Promise","AbortablePromise","CancelablePromise","AbortSignal","AbortController","promise-chain","asynchronous","abort","cancel","async","await","thenable","callbacks","open-source","exception","flow-control","concurrency","nodejs","browser"],"author":{"name":"v-zo","email":"v-zo@doomsoft.dev"},"license":"MIT","bugs":{"url":"https://github.com/as-any/abortable-promise/issues"},"homepage":"https://github.com/as-any/abortable-promise#readme","main":"lib/cjs/index.js","module":"lib/esm/index.js","unpkg":"lib/umd/index.js","types":"lib/esm/index.d.ts","devDependencies":{"@types/jest":"^29.5.6","@typescript-eslint/eslint-plugin":"^6.9.0","eslint":"^8.52.0","eslint-config-standard-with-typescript":"^39.1.1","eslint-plugin-import":"^2.29.0","eslint-plugin-n":"^16.2.0","eslint-plugin-promise":"^6.1.1","jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2"},"scripts":{"test":"jest","lint":"eslint 'src/**/*.ts'","compile:cjs":"tsc -p ./configs/tsconfig.cjs.json","compile:esm":"tsc -p ./configs/tsconfig.esm.json","compile:umd":"tsc -p ./configs/tsconfig.umd.json","compile":"npm run compile:cjs && npm run compile:esm && npm run compile:umd"},"gitHead":"515280e9c88bdbc18b85dc774f222910bc326d6a","_id":"@as-any/abortable-promise@0.0.3","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Vv28RxgPpan6VOlRF3eexc7+4IeQfLImG0Q/8D13CyvZD6VRXDuGdZ237vXXEvb7tJ4cUkEl/OWGObfcmbfNQA==","shasum":"273436549382e6ceda77d5286929e20ac5c4a669","tarball":"https://registry.npmjs.org/@as-any/abortable-promise/-/abortable-promise-0.0.3.tgz","fileCount":33,"unpackedSize":13711,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCd9ory2vYVOJp24jAce/O1rekgXdvflb5INO6FlJzNCAIhAIxV/AVT5CN9HSx31yzu2y9903/7cY1ue7F9nDg9cG1U"}]},"_npmUser":{"name":"doomsoft","email":"npm@doomsoft.dev"},"directories":{},"maintainers":[{"name":"doomsoft","email":"npm@doomsoft.dev"},{"name":"vpzorin","email":"v-zo@doomsoft.dev"},{"name":"vzorin","email":"vpzorin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/abortable-promise_0.0.3_1698901456652_0.6652878364349737"},"_hasShrinkwrap":false},"0.0.4":{"name":"@as-any/abortable-promise","version":"0.0.4","description":"An extension of native Promises with true abort capabilities via AbortSignal.","repository":{"type":"git","url":"git+https://github.com/as-any/abortable-promise.git"},"keywords":["TypeScript","JavaScript","Promise","AbortablePromise","CancelablePromise","AbortSignal","AbortController","promise-chain","asynchronous","abort","cancel","async","await","thenable","callbacks","open-source","exception","flow-control","concurrency","nodejs","browser"],"author":{"name":"v-zo","email":"v-zo@doomsoft.dev"},"license":"MIT","bugs":{"url":"https://github.com/as-any/abortable-promise/issues"},"homepage":"https://github.com/as-any/abortable-promise#readme","main":"lib/cjs/index.js","module":"lib/esm/index.js","unpkg":"lib/umd/index.js","types":"lib/esm/index.d.ts","devDependencies":{"@types/jest":"^29.5.6","@typescript-eslint/eslint-plugin":"^6.9.0","eslint":"^8.52.0","eslint-config-standard-with-typescript":"^39.1.1","eslint-plugin-import":"^2.29.0","eslint-plugin-n":"^16.2.0","eslint-plugin-promise":"^6.1.1","jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2"},"scripts":{"test":"jest","lint":"eslint 'src/**/*.ts'","compile:cjs":"tsc -p ./configs/tsconfig.cjs.json","compile:esm":"tsc -p ./configs/tsconfig.esm.json","compile:umd":"tsc -p ./configs/tsconfig.umd.json","compile":"npm run compile:cjs && npm run compile:esm && npm run compile:umd"},"gitHead":"8e17e54fd54b42839e78c0342efd89db6bd34533","_id":"@as-any/abortable-promise@0.0.4","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-C4dDOgm/ClEcSxIn/vSEqwma3+nyqPVlMX/PtWD8/pRtIC9EBxP9y31w1slb7RtvoA/xkYaIgYCcfSWRmsZBxg==","shasum":"a4c2221f6395fa0953c3238989932e0475839f0c","tarball":"https://registry.npmjs.org/@as-any/abortable-promise/-/abortable-promise-0.0.4.tgz","fileCount":33,"unpackedSize":13711,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID5gXxVWxb1gnxQAyoBZsA7keAzwqZ0CRQ0Uz6n2imp5AiEAiB+tsgIyoGebhH/p0JvG2vARL1OsrYljj7Cz0927wtg="}]},"_npmUser":{"name":"doomsoft","email":"npm@doomsoft.dev"},"directories":{},"maintainers":[{"name":"doomsoft","email":"npm@doomsoft.dev"},{"name":"vpzorin","email":"v-zo@doomsoft.dev"},{"name":"vzorin","email":"vpzorin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/abortable-promise_0.0.4_1698928709802_0.8967033237840201"},"_hasShrinkwrap":false},"0.0.5":{"name":"@as-any/abortable-promise","version":"0.0.5","description":"An extension of native Promises with true abort capabilities via AbortSignal.","repository":{"type":"git","url":"git+https://github.com/as-any/abortable-promise.git"},"keywords":["TypeScript","JavaScript","Promise","AbortablePromise","CancelablePromise","AbortSignal","AbortController","promise-chain","asynchronous","abort","cancel","async","await","thenable","callbacks","open-source","exception","flow-control","concurrency","nodejs","browser"],"author":{"name":"v-zo","email":"v-zo@doomsoft.dev"},"license":"MIT","bugs":{"url":"https://github.com/as-any/abortable-promise/issues"},"homepage":"https://github.com/as-any/abortable-promise#readme","main":"lib/cjs/index.js","module":"lib/esm/index.js","unpkg":"lib/umd/index.js","types":"lib/esm/index.d.ts","devDependencies":{"@types/jest":"^29.5.6","@typescript-eslint/eslint-plugin":"^6.9.0","eslint":"^8.52.0","eslint-config-standard-with-typescript":"^39.1.1","eslint-plugin-import":"^2.29.0","eslint-plugin-n":"^16.2.0","eslint-plugin-promise":"^6.1.1","jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2"},"scripts":{"test":"jest","lint":"eslint 'src/**/*.ts'","compile:cjs":"tsc -p ./configs/tsconfig.cjs.json","compile:esm":"tsc -p ./configs/tsconfig.esm.json","compile:umd":"tsc -p ./configs/tsconfig.umd.json","compile":"npm run compile:cjs && npm run compile:esm && npm run compile:umd"},"gitHead":"b0e21a5de15a98ab409d5189fa5422343cabb1c6","_id":"@as-any/abortable-promise@0.0.5","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-2Hfi4da5nv/Z0EIKwpmwU9JWtXKWgvIrPbCOt4+RRcPyYPxJDE/vqL7Nkoq93+A1nG6/hs7WPqx5f2PHG4DWkw==","shasum":"7b4c0019a10cdedb1df5c4e8cd33f38cb0b13102","tarball":"https://registry.npmjs.org/@as-any/abortable-promise/-/abortable-promise-0.0.5.tgz","fileCount":33,"unpackedSize":13711,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG6/MKzuFpI52Dq/V/NDWphkXzEfxdf2xxBroyJQ7JTeAiA5i1BMEZjDDZjrjiUv6P0wNsJ9eVfqNpNUOQOp4i5S6g=="}]},"_npmUser":{"name":"doomsoft","email":"npm@doomsoft.dev"},"directories":{},"maintainers":[{"name":"doomsoft","email":"npm@doomsoft.dev"},{"name":"vpzorin","email":"v-zo@doomsoft.dev"},{"name":"vzorin","email":"vpzorin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/abortable-promise_0.0.5_1698929256958_0.5300194042652513"},"_hasShrinkwrap":false},"0.0.6":{"name":"@as-any/abortable-promise","version":"0.0.6","description":"An extension of native Promises with true abort capabilities via AbortSignal.","repository":{"type":"git","url":"git+https://github.com/as-any/abortable-promise.git"},"keywords":["TypeScript","JavaScript","Promise","AbortablePromise","CancelablePromise","AbortSignal","AbortController","promise-chain","asynchronous","abort","cancel","async","await","thenable","callbacks","open-source","exception","flow-control","concurrency","nodejs","browser"],"author":{"name":"v-zo","email":"v-zo@doomsoft.dev"},"license":"MIT","bugs":{"url":"https://github.com/as-any/abortable-promise/issues"},"homepage":"https://github.com/as-any/abortable-promise#readme","main":"lib/cjs/index.js","module":"lib/esm/index.js","unpkg":"lib/umd/index.js","types":"lib/esm/index.d.ts","devDependencies":{"@types/jest":"^29.5.6","@typescript-eslint/eslint-plugin":"^6.9.0","eslint":"^8.52.0","eslint-config-standard-with-typescript":"^39.1.1","eslint-plugin-import":"^2.29.0","eslint-plugin-n":"^16.2.0","eslint-plugin-promise":"^6.1.1","jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2"},"scripts":{"test":"jest","lint":"eslint 'src/**/*.ts'","compile:cjs":"tsc -p ./configs/tsconfig.cjs.json","compile:esm":"tsc -p ./configs/tsconfig.esm.json","compile:umd":"tsc -p ./configs/tsconfig.umd.json","compile":"npm run compile:cjs && npm run compile:esm && npm run compile:umd"},"gitHead":"a5c5ef0c9d3af8183cbc813815d1432431725a41","_id":"@as-any/abortable-promise@0.0.6","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-5lX/YuLM4by+4e7DsQvqsymIOZlkOMM0ZD9pczmw/m6PFABnBoqSfQfo10yg1+TCMsQIujryhFTeQDwU+otwhQ==","shasum":"31c8b21dc8df069a9aaff314cead1184dd5f2aa5","tarball":"https://registry.npmjs.org/@as-any/abortable-promise/-/abortable-promise-0.0.6.tgz","fileCount":33,"unpackedSize":13711,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHaDiYf2xv7++my/glPI5jPHEYHNSY5xRgbxWH9CM9HUAiEAnrRvkTG2pFteAB9X55friP+E0Q8mlhp0ZhJY0fO4ztI="}]},"_npmUser":{"name":"doomsoft","email":"npm@doomsoft.dev"},"directories":{},"maintainers":[{"name":"doomsoft","email":"npm@doomsoft.dev"},{"name":"vpzorin","email":"v-zo@doomsoft.dev"},{"name":"vzorin","email":"vpzorin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/abortable-promise_0.0.6_1698930135963_0.976683191853829"},"_hasShrinkwrap":false},"0.0.7":{"name":"@as-any/abortable-promise","version":"0.0.7","description":"An extension of native Promises with true abort capabilities via AbortSignal.","repository":{"type":"git","url":"git+https://github.com/as-any/abortable-promise.git"},"keywords":["TypeScript","JavaScript","Promise","AbortablePromise","CancelablePromise","AbortSignal","AbortController","promise-chain","asynchronous","abort","cancel","async","await","thenable","callbacks","open-source","exception","flow-control","concurrency","nodejs","browser"],"author":{"name":"v-zo","email":"v-zo@doomsoft.dev"},"license":"MIT","bugs":{"url":"https://github.com/as-any/abortable-promise/issues"},"homepage":"https://github.com/as-any/abortable-promise#readme","main":"lib/cjs/index.js","module":"lib/esm/index.js","unpkg":"lib/umd/index.js","types":"lib/esm/index.d.ts","devDependencies":{"@types/jest":"^29.5.6","@typescript-eslint/eslint-plugin":"^6.9.0","eslint":"^8.52.0","eslint-config-standard-with-typescript":"^39.1.1","eslint-plugin-import":"^2.29.0","eslint-plugin-n":"^16.2.0","eslint-plugin-promise":"^6.1.1","jest":"^29.7.0","ts-jest":"^29.1.1","typescript":"^5.2.2"},"scripts":{"test":"jest","lint":"eslint 'src/**/*.ts'","compile:cjs":"tsc -p ./configs/tsconfig.cjs.json","compile:esm":"tsc -p ./configs/tsconfig.esm.json","compile:umd":"tsc -p ./configs/tsconfig.umd.json","compile":"npm run compile:cjs && npm run compile:esm && npm run compile:umd"},"gitHead":"f0b5defb67924fea9f6aebe836c34b4c91567dbd","_id":"@as-any/abortable-promise@0.0.7","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-KnjwHARIVqjFtZ9aLWEIVcdursihyWEx2+h1JQrKhCg6AILjg7T1MTpSLo5KcrYx2WfsEU/AxYhhQl9rAvSg+g==","shasum":"8be17f0744e29781816c8367af4afd7090249666","tarball":"https://registry.npmjs.org/@as-any/abortable-promise/-/abortable-promise-0.0.7.tgz","fileCount":33,"unpackedSize":13711,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGSlpqNSAZywNe0pvWjiK0MTOWMJeZ8081KbEKMCEqJ4AiEAr2JsJvLFO8DRrOjo275L1OctDatn/xJ+ZnM6m9/Hjso="}]},"_npmUser":{"name":"doomsoft","email":"npm@doomsoft.dev"},"directories":{},"maintainers":[{"name":"doomsoft","email":"npm@doomsoft.dev"},{"name":"vpzorin","email":"v-zo@doomsoft.dev"},{"name":"vzorin","email":"vpzorin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/abortable-promise_0.0.7_1698931289151_0.5310964899610147"},"_hasShrinkwrap":false}},"time":{"created":"2023-11-02T05:04:16.557Z","0.0.3":"2023-11-02T05:04:16.849Z","modified":"2023-11-09T10:40:54.875Z","0.0.4":"2023-11-02T12:38:30.025Z","0.0.5":"2023-11-02T12:47:37.134Z","0.0.6":"2023-11-02T13:02:16.243Z","0.0.7":"2023-11-02T13:21:29.363Z"},"maintainers":[{"email":"npm@as-any.dev","name":"npm-as-any"},{"email":"v-zo@as-any.dev","name":"v-zo-as-any"},{"email":"npm@doomsoft.dev","name":"doomsoft"},{"email":"v-zo@doomsoft.dev","name":"vpzorin"},{"email":"vpzorin@gmail.com","name":"vzorin"}],"description":"An extension of native Promises with true abort capabilities via AbortSignal.","homepage":"https://github.com/as-any/abortable-promise#readme","keywords":["TypeScript","JavaScript","Promise","AbortablePromise","CancelablePromise","AbortSignal","AbortController","promise-chain","asynchronous","abort","cancel","async","await","thenable","callbacks","open-source","exception","flow-control","concurrency","nodejs","browser"],"repository":{"type":"git","url":"git+https://github.com/as-any/abortable-promise.git"},"author":{"name":"v-zo","email":"v-zo@doomsoft.dev"},"bugs":{"url":"https://github.com/as-any/abortable-promise/issues"},"license":"MIT","readme":"# AbortablePromise\n\nThe `AbortablePromise` class is an extension of the native JavaScript `Promise`, designed to make it easier to abort promises. It adds an abort signal to the promise, which can trigger rejection of the promise when it's aborted.\n\n## How to Use\n\nCreate [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) and pass its `signal` as a second argument of `AbortablePromise` constructor:\n\n```typescript\nconst controller = new AbortController();\nconst signal = controller.signal;\n\nconst myPromise = new AbortablePromise((resolve, reject) => {\n  // Do something\n}, signal);\n```\n\nOr make your existing promise abortable:\n\n```typescript\nconst originalPromise = new Promise((resolve, reject) => {\n  // Do something\n});\nconst myAbortablePromise = makeAbortable(originalPromise, signal);\n```\n\nThen call the `abort()` method\n\n```typescript\ncontroller.abort();\n```\n\nError handling can be done using the `catch` method just like with regular promises:\n\n```typescript\nmyAbortablePromise.catch(reason => {\n  console.error('Promise was aborted:', reason);\n});\n```\n\n\nBy default, `AbortablePromise` rejects with an [\"AbortError\" DOMException](https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort#parameters) if it is aborted:\n\n```typescript\nsetTimeout(() => controller.abort(), 1000);\n\ntry {\n    await myAbortablePromise;\n  } catch (err) {\n    if (err.name === 'AbortError') {\n      console.log(\"Operation aborted: \", err.message);\n    }\n    console.log(\"Error occurred: \", err);\n  }\n\n```\n\nPass any custom object you want the promise to be rejected with to `controller.abort()`:\n\n```typescript\nmyAbortablePromise.catch(reason => {\n    console.log(reason) // { myReason: 42 }\n})\n\ncontroller.abort({ myReason: 42 });\n\n```\n","readmeFilename":"README.md"}