{"_id":"@abortor/react","_rev":"5-875dae1c87e0b006d3acdb50fdd7f4c0","name":"@abortor/react","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@abortor/react","version":"0.1.0","keywords":["abortor","react","hooks","cancellation","abortcontroller"],"author":{"name":"MVD"},"license":"MIT","_id":"@abortor/react@0.1.0","maintainers":[{"name":"michael.","email":"michaelvandaele2@gmail.com"}],"dist":{"shasum":"57cf5956e8d7bcdd683ddf3bcded7afd287ae0d0","tarball":"https://registry.npmjs.org/@abortor/react/-/react-0.1.0.tgz","fileCount":4,"integrity":"sha512-68EAQ8TK/rqAhhuF+uEzzSJBCVuvy3SXodsgNGsgrqiqFjgJjMo+Q9398gBsFP57GegfireJji0hSnm1k0qclg==","signatures":[{"sig":"MEQCIDoSmjEnq54dfUJGklWG7EjZMd9b/A1U4uEFSNjVw3V8AiAlOH8evWBxynDT6FiLlsAn3pit0fCrJoaqpHxmmeSdBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7483},"type":"module","_from":"file:abortor-react-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"build":"tsup","clean":"rimraf dist","types":"tsc -p ./.tsc-react.json"},"_npmUser":{"name":"michael.","email":"michaelvandaele2@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\3edb4b56368fd965777cadf4d7579216\\abortor-react-0.1.0.tgz","_integrity":"sha512-68EAQ8TK/rqAhhuF+uEzzSJBCVuvy3SXodsgNGsgrqiqFjgJjMo+Q9398gBsFP57GegfireJji0hSnm1k0qclg==","_npmVersion":"11.3.0","description":"React hooks and context for Abortor: lifecycle-scoped cancellation for React apps.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.3.1","typescript":"^5.6.3","@types/react":"^18.3.23","@abortor/core":"0.1.1"},"peerDependencies":{"react":">=18","@abortor/core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.0_1755574322789_0.3821520082091412","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@abortor/react","version":"0.1.1","keywords":["abortor","react","hooks","cancellation","abortcontroller"],"author":{"name":"MVD"},"license":"MIT","_id":"@abortor/react@0.1.1","maintainers":[{"name":"michael.","email":"michaelvandaele2@gmail.com"}],"dist":{"shasum":"33e3e17df9af2c22d18748a79407627de04e19bb","tarball":"https://registry.npmjs.org/@abortor/react/-/react-0.1.1.tgz","fileCount":5,"integrity":"sha512-PaLxH9bIx9oI8b7REJ9+w1FpJeO+3J6oVQ2j2gWaJNSJWWwf1d4dvtaO2tFjAM8SLBe9f1rfyvBemy7MWDnOgQ==","signatures":[{"sig":"MEQCIE0HQWTdO1W0AxGTP8kO3FjEwIpwpqVYUg5Xz3fMnJD6AiBWj1Zbbw53HCxinUbWfSUXRwJdhm6VPtHHdLUfmAXVhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46742},"type":"module","_from":"file:abortor-react-0.1.1.tgz","types":"./dist/types/index.d.ts","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"build":"tsup","clean":"rimraf dist","types":"tsc -p ./.tsc-react.json"},"_npmUser":{"name":"michael.","email":"michaelvandaele2@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\2791e1164d1b99451ccfeb80b769d1a7\\abortor-react-0.1.1.tgz","_integrity":"sha512-PaLxH9bIx9oI8b7REJ9+w1FpJeO+3J6oVQ2j2gWaJNSJWWwf1d4dvtaO2tFjAM8SLBe9f1rfyvBemy7MWDnOgQ==","_npmVersion":"11.3.0","description":"React hooks and context for Abortor: lifecycle-scoped cancellation for React apps.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.3.1","typescript":"^5.6.3","@types/react":"^18.3.23","@abortor/core":"0.1.1"},"peerDependencies":{"react":">=18","@abortor/core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.1_1755576386719_0.9848990787608578","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@abortor/react","version":"0.1.2","keywords":["abortor","react","hooks","cancellation","abortcontroller"],"author":{"name":"MVD"},"license":"MIT","_id":"@abortor/react@0.1.2","maintainers":[{"name":"michael.","email":"michaelvandaele2@gmail.com"}],"dist":{"shasum":"e86eef5e03f18fd3c01a356e382c1af8ec359fd9","tarball":"https://registry.npmjs.org/@abortor/react/-/react-0.1.2.tgz","fileCount":4,"integrity":"sha512-RWKjVfopm7c4Gm37xMPYlg1jRmSijs9V11bITphZNcXRlJv5l5+SmF2RW1mRZAcUPgCTNU7O7rjpv1Ip0nDx9g==","signatures":[{"sig":"MEQCIGi06CPEb3/3qxpcjVESh7vrlSOJ4wGayXnqfiyW+peaAiB+ADCcDyOxbxW2bXJ2Ws4PExFqU1rQquwECwlrWWf3Eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7552},"type":"module","_from":"file:abortor-react-0.1.2.tgz","types":"./dist/types/index.d.ts","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"build":"tsup","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","types":"tsc -p ./.tsc-react.json"},"_npmUser":{"name":"michael.","email":"michaelvandaele2@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\31ee1cf4a49cbbded0f85a81e1240d62\\abortor-react-0.1.2.tgz","_integrity":"sha512-RWKjVfopm7c4Gm37xMPYlg1jRmSijs9V11bITphZNcXRlJv5l5+SmF2RW1mRZAcUPgCTNU7O7rjpv1Ip0nDx9g==","_npmVersion":"11.3.0","description":"React hooks and context for Abortor: lifecycle-scoped cancellation for React apps.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.3.1","typescript":"^5.6.3","@types/react":"^18.3.23","@abortor/core":"0.1.1"},"peerDependencies":{"react":">=18","@abortor/core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.2_1755577469725_0.5605835661053149","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@abortor/react","version":"0.1.3","keywords":["abortor","react","hooks","cancellation","abortcontroller"],"author":{"name":"MVD"},"license":"MIT","_id":"@abortor/react@0.1.3","maintainers":[{"name":"michael.","email":"michaelvandaele2@gmail.com"}],"dist":{"shasum":"cd801e19e7a7ddf3553d2c6dc62740b620e96c05","tarball":"https://registry.npmjs.org/@abortor/react/-/react-0.1.3.tgz","fileCount":5,"integrity":"sha512-PhfpFe8nxNdIMhd7wTLDzqPvOezn3tV15YVdHvj9W9OuGlmOUGkUNrI28bbwHav1dyBYBGH9VnNZfYOFuxNOow==","signatures":[{"sig":"MEQCIHFXvIR3iqtuoU+eLcH1RLgpVefyvaiNlJt4XsetUje+AiAyDrxbXRWjJYfpLZxN/nrp2KXvhSrLMTPqN3xHkhy/jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8520},"type":"module","_from":"file:abortor-react-0.1.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"build":"tsup","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\""},"_npmUser":{"name":"michael.","email":"michaelvandaele2@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\c06a34d87b024a4b1a9a4af089e633c6\\abortor-react-0.1.3.tgz","_integrity":"sha512-PhfpFe8nxNdIMhd7wTLDzqPvOezn3tV15YVdHvj9W9OuGlmOUGkUNrI28bbwHav1dyBYBGH9VnNZfYOFuxNOow==","_npmVersion":"11.3.0","description":"React hooks and context for Abortor: lifecycle-scoped cancellation for React apps.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.3.1","typescript":"^5.6.3","@types/react":"^18.3.23","@abortor/core":"0.1.2"},"peerDependencies":{"react":">=18","@abortor/core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/react_0.1.3_1755579685083_0.2531871885590278","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@abortor/react","version":"0.1.4","description":"React hooks and context for Abortor: lifecycle-scoped cancellation for React apps.","type":"module","sideEffects":false,"author":{"name":"MVD"},"keywords":["abortor","react","hooks","cancellation","abortcontroller"],"license":"MIT","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"types":"./dist/index.d.ts","peerDependencies":{"@abortor/core":">=0.1.0","react":">=18"},"devDependencies":{"@types/react":"^18.3.23","react":"^18.3.1","tsup":"^8.0.0","typescript":"^5.6.3","@abortor/core":"0.1.4"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","ci:publish":"pnpm publish --access public --no-git-checks"},"_id":"@abortor/react@0.1.4","_integrity":"sha512-+uGso+8BC3MNZk930PPt+tLAvS8pSPRDXp9JBfhrFbJehH0X52/SL9JIxPllczvpZVBhw0t17+EbqvbDLxAV3A==","_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\3a0430729d785d36b1ffc65c2421a197\\abortor-react-0.1.4.tgz","_from":"file:abortor-react-0.1.4.tgz","_nodeVersion":"22.14.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-+uGso+8BC3MNZk930PPt+tLAvS8pSPRDXp9JBfhrFbJehH0X52/SL9JIxPllczvpZVBhw0t17+EbqvbDLxAV3A==","shasum":"4bc3f57a9f0557e211bba2f4e6c49b4f7ab806cb","tarball":"https://registry.npmjs.org/@abortor/react/-/react-0.1.4.tgz","fileCount":5,"unpackedSize":8661,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHU6ltvxZNUbGleS4EjBKYUIOHUW4nMJ/EKzgoOGU6LGAiBtAS15yvris2n+TymkwMCMtRsNGgStucoojBisk5dBig=="}]},"_npmUser":{"name":"michael.","email":"michaelvandaele2@gmail.com"},"directories":{},"maintainers":[{"name":"michael.","email":"michaelvandaele2@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react_0.1.4_1755875697324_0.7014940183451972"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-19T03:32:02.657Z","modified":"2025-08-22T15:14:57.726Z","0.1.0":"2025-08-19T03:32:02.991Z","0.1.1":"2025-08-19T04:06:26.907Z","0.1.2":"2025-08-19T04:24:29.888Z","0.1.3":"2025-08-19T05:01:25.281Z","0.1.4":"2025-08-22T15:14:57.530Z"},"author":{"name":"MVD"},"license":"MIT","keywords":["abortor","react","hooks","cancellation","abortcontroller"],"description":"React hooks and context for Abortor: lifecycle-scoped cancellation for React apps.","maintainers":[{"name":"michael.","email":"michaelvandaele2@gmail.com"}],"readme":"# @abortor/react\n\nReact bindings for the **Abortor** core package. This library makes it easier to manage async lifecycles in React components using the `Scope` abstraction from `@abortor/core`.\n\n---\n\n## Installation\n\n```bash\n# install peer deps (React 18+)\npnpm add react react-dom\n\n# install abortor core & react adapter\npnpm add @abortor/core @abortor/react\n```\n\n---\n\n## Usage\n\n### 1. Create a scope in your component\n\n```tsx\nimport { useScope } from \"@abortor/react\";\n\nfunction UserProfile() {\n  const scope = useScope();\n\n  React.useEffect(() => {\n    const controller = new AbortController();\n\n    scope\n      .fetch(\"/api/user\", { signal: controller.signal })\n      .then((res) => res.json())\n      .then((data) => console.log(data))\n      .catch((err) => {\n        if (err.name !== \"AbortError\") {\n          console.error(err);\n        }\n      });\n\n    return () => controller.abort();\n  }, [scope]);\n\n  return <div>User profile loading...</div>;\n}\n```\n\n### 2. Parallel async work\n\n```tsx\nfunction Dashboard() {\n  const scope = useScope();\n\n  React.useEffect(() => {\n    scope\n      .all([scope.fetch(\"/api/stats\"), scope.fetch(\"/api/notifications\")])\n      .then(([stats, notifications]) => {\n        console.log(stats, notifications);\n      });\n  }, [scope]);\n\n  return <div>Loading dashboard...</div>;\n}\n```\n\n---\n\n## API Surface\n\nAll React hooks are thin adapters over the **Core Scope API**:\n\n- `useScope()` → returns a `Scope` bound to the component lifecycle.\n\nFor full details on `Scope`, see [@abortor/core](https://www.npmjs.com/package/@abortor/core).\n\n---\n\n## Peer Dependencies\n\n- **React**: `>=18`\n- **@abortor/core**: matched version\n\nEnsure both are installed in your project.\n\n## API Reference\n\n[View the Reference Docs](https://abortor.netlify.app/)\n\n---\n\n---\n","readmeFilename":"README.md"}