{"_id":"@arnavk-09/unwrap-go","_rev":"6-b148c42973c8215d079e6184cf880eb8","name":"@arnavk-09/unwrap-go","dist-tags":{"latest":"0.1.1"},"versions":{"0.0.6":{"name":"@arnavk-09/unwrap-go","version":"0.0.6","author":{"name":"ArnavK-09","email":"arnavkaushal09@gmail.com"},"license":"Unlicense","_id":"@arnavk-09/unwrap-go@0.0.6","maintainers":[{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"}],"homepage":"https://github.com/ArnavK-09/unwrap-go#readme","bugs":{"url":"https://github.com/ArnavK-09/unwrap-go/issues"},"dist":{"shasum":"a7ff834c47bd4eebd371d6c57f9f6f8fc9a55d1f","tarball":"https://registry.npmjs.org/@arnavk-09/unwrap-go/-/unwrap-go-0.0.6.tgz","fileCount":5,"integrity":"sha512-sVTbdZepSCHqOeLTOAHplApmQNZR67nUzqOc8LJo0otJ10mmQnKkGxZTy7ZhDGHlZvWz6jGvFsrY8jBXqmLadQ==","signatures":[{"sig":"MEQCIGHcIT2ncnHxJRum5/xkwNQo5Xgu1b9nhRaeLXXlmjOdAiAoayriRST16rhxHO6ICdJI9/fC7rfSeODrTgEwjYv+iQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12628},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"bun":">=1.0.0"},"gitHead":"b17c00a1c0766babfda4166afe28b84ef2042d1a","scripts":{"build":"tsc"},"_npmUser":{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"},"repository":{"url":"git+https://github.com/ArnavK-09/unwrap-go.git","type":"git"},"_npmVersion":"10.9.2","description":"Go-like Error Handling for TypeScript/JavaScript","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/unwrap-go_0.0.6_1739046359516_0.071112810136013","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@arnavk-09/unwrap-go","version":"0.0.7","author":{"name":"ArnavK-09","email":"arnavkaushal09@gmail.com"},"license":"Unlicense","_id":"@arnavk-09/unwrap-go@0.0.7","maintainers":[{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"}],"homepage":"https://github.com/ArnavK-09/unwrap-go#readme","bugs":{"url":"https://github.com/ArnavK-09/unwrap-go/issues"},"dist":{"shasum":"91604673c0e1755f6be55a077754ffc1c4fb05c0","tarball":"https://registry.npmjs.org/@arnavk-09/unwrap-go/-/unwrap-go-0.0.7.tgz","fileCount":5,"integrity":"sha512-if6R8B7XE6D/4/e8Ievkaw5uxMZr3cPjeA9vBFdVK70T+UcXAX07SVvm2XwKl084EzexWmJyMY6Jdt/uiAQutQ==","signatures":[{"sig":"MEQCIA7Dg4KpegbMdWAi5Z+MuE7QN89GerAoQiFeRD/8CanlAiBE9ACt/K2nyIAZoGGTM/8ARwNz1S9kOukeN0fKPlf4Aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12706},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"bun":">=1.0.0"},"gitHead":"b7f653e4fc3fc3b3a5b13faf9139682502c123e2","scripts":{"build":"tsc"},"_npmUser":{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"},"repository":{"url":"git+https://github.com/ArnavK-09/unwrap-go.git","type":"git"},"_npmVersion":"10.9.2","description":"Go-like Error Handling for TypeScript/JavaScript","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/unwrap-go_0.0.7_1739046757658_0.15544983209801355","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@arnavk-09/unwrap-go","version":"0.0.8","author":{"name":"ArnavK-09","email":"arnavkaushal09@gmail.com"},"license":"Unlicense","_id":"@arnavk-09/unwrap-go@0.0.8","maintainers":[{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"}],"homepage":"https://github.com/ArnavK-09/unwrap-go#readme","bugs":{"url":"https://github.com/ArnavK-09/unwrap-go/issues"},"dist":{"shasum":"ee0db7e14d715b5750e398236d3c968101ed09e4","tarball":"https://registry.npmjs.org/@arnavk-09/unwrap-go/-/unwrap-go-0.0.8.tgz","fileCount":5,"integrity":"sha512-ytmk26CSOacl+cOpJuEmdejd2G6ulvhwSnxpiDbaGhu6/HqO3gcwtFwy2ppj1qVgDQ0yM8SqnQxodDsBbxKdxA==","signatures":[{"sig":"MEUCIFv8WJrzLnGtSA1oM2sJBpK9wdEKmWDVovm9h4WGPwlHAiEA3NtAIHzje8yybjVfGji3Gq/iNlI5jixfO4ERSoMz+Jk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12814},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"bun":">=1.0.0"},"gitHead":"bdd305ff80b8918444daabcdd1d1473516d0c768","scripts":{"build":"tsc"},"_npmUser":{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"},"repository":{"url":"git+https://github.com/ArnavK-09/unwrap-go.git","type":"git"},"_npmVersion":"10.9.2","description":"Go-like Error Handling for TypeScript/JavaScript","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/unwrap-go_0.0.8_1739047014843_0.004715850403256061","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@arnavk-09/unwrap-go","version":"0.0.9","author":{"name":"ArnavK-09","email":"arnavkaushal09@gmail.com"},"license":"Unlicense","_id":"@arnavk-09/unwrap-go@0.0.9","maintainers":[{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"}],"homepage":"https://github.com/ArnavK-09/unwrap-go#readme","bugs":{"url":"https://github.com/ArnavK-09/unwrap-go/issues"},"dist":{"shasum":"8e24cf05f9efcb36bdfa347915d7b5e5491d6304","tarball":"https://registry.npmjs.org/@arnavk-09/unwrap-go/-/unwrap-go-0.0.9.tgz","fileCount":5,"integrity":"sha512-ygjbPiDK/rgXQKnNY5jBWKDHyPfS4L9xk4rkVwrR2mfK5qEUCVqY6JE7xV7hdHX0k7N70f38pOQxFOpjkb/feA==","signatures":[{"sig":"MEYCIQDT4wO5ulskZcwAi2L9IuM9T2bUhb+2NClKwBVaqMxOdQIhAOUygDNHTqzBZXjkUbPsfwtysxC2N7vApcJ19udqrNLT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12814},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"bun":">=1.0.0"},"gitHead":"cea5168b2c903d2fd167f56fc1e5091ef81663e8","scripts":{"build":"tsc"},"_npmUser":{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"},"repository":{"url":"git+https://github.com/ArnavK-09/unwrap-go.git","type":"git"},"_npmVersion":"10.9.2","description":"Go-like Error Handling for TypeScript/JavaScript","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/unwrap-go_0.0.9_1739047220234_0.018270795712378662","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@arnavk-09/unwrap-go","version":"0.1.0","author":{"name":"ArnavK-09","email":"arnavkaushal09@gmail.com"},"license":"Unlicense","_id":"@arnavk-09/unwrap-go@0.1.0","maintainers":[{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"}],"homepage":"https://github.com/ArnavK-09/unwrap-go#readme","bugs":{"url":"https://github.com/ArnavK-09/unwrap-go/issues"},"dist":{"shasum":"c1bb9d2c4fbe55f241ce49e5c4677a74160ad81a","tarball":"https://registry.npmjs.org/@arnavk-09/unwrap-go/-/unwrap-go-0.1.0.tgz","fileCount":5,"integrity":"sha512-wOcmzjafbD4RmjtPTW39ADjV4R+mo7KrTIT9E96qM/qfvgFHpVC7YJg1nuHldK2FDxn3+vQ+hAWDr4IU4FywwA==","signatures":[{"sig":"MEYCIQC4dqBL5IX7F+FiMAkPLx1IYbg0XArjFYwifJczozhFKwIhAImTZAIy6Hpgsh49vsDhen2Y9tJhBciGgGl3bfisQQvV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12814},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"bun":">=1.0.0"},"gitHead":"bd3ab0f4994725fbf39abe38f8ac9ecb365274a5","scripts":{"build":"tsc"},"_npmUser":{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"},"repository":{"url":"git+https://github.com/ArnavK-09/unwrap-go.git","type":"git"},"_npmVersion":"10.9.2","description":"Go-like Error Handling for TypeScript/JavaScript","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/unwrap-go_0.1.0_1739047340225_0.6658251429461877","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@arnavk-09/unwrap-go","version":"0.1.1","description":"Go-like Error Handling for TypeScript/JavaScript","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsup"},"author":{"name":"ArnavK-09","email":"arnavkaushal09@gmail.com"},"license":"Unlicense","repository":{"type":"git","url":"git+https://github.com/ArnavK-09/unwrap-go.git"},"engines":{"bun":">=1.0.0"},"devDependencies":{"tsup":"^8.4.0","typescript":"^5.0.0"},"_id":"@arnavk-09/unwrap-go@0.1.1","gitHead":"2c3769f7c2177379608ff55147c2c63e10ff4478","bugs":{"url":"https://github.com/ArnavK-09/unwrap-go/issues"},"homepage":"https://github.com/ArnavK-09/unwrap-go#readme","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-1tVKrtDD6NVpa9GpAp68r3S0jZr2TzAm2eOPU7fpC/JRFzYh+ThCbPe0omgkEPBuM+cMGcvTf8b3gGnpyDenGQ==","shasum":"6aa140c4381da83515d4963129b3180c6858cc90","tarball":"https://registry.npmjs.org/@arnavk-09/unwrap-go/-/unwrap-go-0.1.1.tgz","fileCount":7,"unpackedSize":13680,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQChwUom+KxOdajLM14E/mEkXK1SIKZ5S9BSiWY3Y4RetwIhAJ35q/Eqh+QxToJFNZjzQ81exUj6F9uE0cswKg4JSw2j"}]},"_npmUser":{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"},"directories":{},"maintainers":[{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/unwrap-go_0.1.1_1742890434172_0.20899828743306048"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-08T20:25:59.422Z","modified":"2025-03-25T08:13:54.589Z","0.0.6":"2025-02-08T20:25:59.692Z","0.0.7":"2025-02-08T20:32:37.854Z","0.0.8":"2025-02-08T20:36:55.025Z","0.0.9":"2025-02-08T20:40:20.411Z","0.1.0":"2025-02-08T20:42:20.421Z","0.1.1":"2025-03-25T08:13:54.380Z"},"bugs":{"url":"https://github.com/ArnavK-09/unwrap-go/issues"},"author":{"name":"ArnavK-09","email":"arnavkaushal09@gmail.com"},"license":"Unlicense","homepage":"https://github.com/ArnavK-09/unwrap-go#readme","repository":{"type":"git","url":"git+https://github.com/ArnavK-09/unwrap-go.git"},"description":"Go-like Error Handling for TypeScript/JavaScript","maintainers":[{"name":"arnavk-09","email":"arnavkaushal09@gmail.com"}],"readme":"<h1 align=\"center\">🫧 unwrap-go 🫧</h1>\n<h2 align=\"center\">Go-like Error Handling for TypeScript/JavaScript</h2>\n\n<p align=\"center\">\n    <img alt=\"hero\" width=\"450\" src=\"https://emoji-route.deno.dev/gif/🫧\" />\n</p>\n\n> [!NOTE]\n>\n> unwrap-go brings Go-style error handling to TypeScript and JavaScript, offering a clean and predictable way to handle errors using Result tuples. This approach eliminates the need for try-catch blocks and provides a more functional approach to error management.\n\n## 🌟 Features\n\n> **unwrap-go** features intro:\n\n- **Go-Style Error Handling** – Uses tuple returns (`[data, error]`) similar to Go's approach, making error handling more explicit and predictable\n- **Promise Support** – Built-in support for handling asynchronous operations with the same elegant syntax\n- **Type Safety** – Full TypeScript support with generic types for both success and error cases\n- **Zero Dependencies** – Lightweight implementation with no external dependencies\n- **Synchronous Support** – Handle both async and sync operations with consistent patterns\n\n## 🧨 Registries\n\n- **[jsr.io/@arnavk-09/unwrap-go](https://jsr.io/@arnavk-09/unwrap-go)**\n- **[npmjs.com/package/@arnavk-09/unwrap-go](https://www.npmjs.com/package/@arnavk-09/unwrap-go)**\n\n## 💻 Installation\n\n> You can add **unwrap-go** with one command via:\n\n###### terminal\n\n```bash\nnpm install @arnavk-09/unwrap-go\ndeno add jsr:@arnavk-09/unwrap-go\nbun add @arnavk-09/unwrap-go\npnpm add @arnavk-09/unwrap-go\nyarn add @arnavk-09/unwrap-go\n\n```\n\n<p align=\"center\">OR</p>\n\n###### Deno\n\n```bash\ndeno add jsr:@arnavk-09/unwrap-go\n```\n\n###### Npx\n\n```bash\nnpm install @arnavk-09/unwrap-go\n```\n\n###### Bun\n\n```bash\nbun add @arnavk-09/unwrap-go\n```\n\n###### Pnpm\n\n```bash\npnpm add @arnavk-09/unwrap-go\n```\n\n###### Yarn\n\n```bash\nyarn add @arnavk-09/unwrap-go\n```\n\n## 🚀 Usage\n\n```typescript\nimport { unwrapPromise, unwrapSync } from \"@arnavk-09/unwrap-go\";\n\n// Async example\nasync function fetchData() {\n  const [data, err] = await unwrapPromise(\n    fetch(\"https://api.example.com/data\"),\n  );\n  if (err) {\n    console.error(\"Failed to fetch:\", err);\n    return;\n  }\n  console.log(\"Data:\", data);\n}\n\n// Sync example\nfunction divide(a: number, b: number) {\n  const [result, err] = unwrapSync(() => {\n    if (b === 0) throw new Error(\"Division by zero\");\n    return a / b;\n  });\n  if (err) {\n    console.error(\"Division failed:\", err);\n    return;\n  }\n  console.log(\"Result:\", result);\n}\n```\n\n## 📚 API Reference\n\n| Function              | Description                                                | Parameters                           | Return Type              |\n| --------------------- | ---------------------------------------------------------- | ------------------------------------ | ------------------------ |\n| `unwrapPromise<T, E>` | Wraps a promise to return a Result tuple                   | `promise: Promise<T>`                | `Promise<Result<T, E>>`  |\n| `unwrapSync<T, E>`    | Executes a synchronous function and returns a Result tuple | `fn: () => T`                        | `Result<T, E>`           |\n| `Result<T, E>`        | Type representing either success (T) or error (E)          | `T`: Success type<br>`E`: Error type | `[T, null] \\| [null, E]` |\n\n## 🛣️ Roadmap\n\n|       Task        | Status |\n| :---------------: | :----: |\n|   🧪 Add tests    |   🔴   |\n| 🧪 Publish To JSR |   🟢   |\n| 🧪 Publish To NPM |   🟢   |\n\n## 💻 Contributing\n\n> [!TIP]  \n> We welcome contributions to improve **unwrap-go**! If you have suggestions, bug fixes, or new feature ideas, follow these steps:\n\n1. **Fork the Repository** you\n   Click the **Fork** button at the top-right of the repo page.\n\n2. **Clone Your Fork**  \n   Clone the repo locally: YOU\n\n   ```bash\n   git clone https://github.com/ArnavK-09/unwrap-go.git\n   ```\n\n3. **Create a Branch**  \n   Create a new branch for your changes:\n\n   ```bash\n   git checkout -b your-feature-branch\n   ```\n\n4. **Make Changes**  \n   Implement your changes (bug fixes, features, etc.).\n\n5. **Commit and Push**  \n   Commit your changes and push the branch:\n\n   ```bash\n   git commit -m \"feat(scope): description\"\n   git push origin your-feature-branch\n   ```\n\n6. **Open a Pull Request**  \n   Open a PR with a detailed description of your changes.\n\n7. **Collaborate and Merge**  \n   The maintainers will review your PR, request changes if needed, and merge it once approved.\n\n## 🙋‍♂️ Issues\n\nFound a bug or need help? Please create an issue on the [GitHub repository](https://github.com/ArnavK-09/unwrap-go/issues) with a detailed description.\n\n## 👤 Author\n\n<table>\n  <tbody>\n    <tr>\n        <td align=\"center\" valign=\"top\" width=\"14.28%\"><a href=\"https://github.com/ArnavK-09\"><img src=\"https://github.com/ArnavK-09.png?s=100\" width=\"130px;\" alt=\"Arnav K\"/></a><br /><a href=\"https://github.com/ArnavK-09\"<h4><b>Arnav K</b></h3></a></td>\n    </tr>\n  </tbody>\n</table>\n\n---\n\n<h2 align=\"center\">📄 License</h2>\n\n<p align=\"center\">\n<strong>unwrap-go</strong> is licensed under the <code>Unlicense</code> License. See the <a href=\"https://github.com/ArnavK-09/unwrap-go/blob/main/LICENSE\">LICENSE</a> file for more details.\n</p>\n\n---\n\n<p align=\"center\">\n    <strong>🌟 If you find this project helpful, please give it a star on GitHub! 🌟</strong>\n</p>\n","readmeFilename":"README.md"}