{"_id":"@blazyts/better-standard-library","name":"@blazyts/better-standard-library","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@blazyts/better-standard-library","type":"module","version":"1.0.0","module":"index.ts","peerDependencies":{"typescript":"^5.0.0"},"scripts":{"build-lib":"tsup index.ts --format cjs,esm --dts"},"dependencies":{"@types/bun":"latest","bun-types":"latest","dotenv":"^16.5.0"},"devDependencies":{"tsup":"^8.5.0","vitest":"^0.34.0"},"_id":"@blazyts/better-standard-library@1.0.0","description":"A TypeScript-first, ergonomic, and safe standard library inspired by Rust and functional programming paradigms. This package provides improved error handling, data structures, and utility types for modern TypeScript projects.","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Sg3YVW3ZQJ8iYL3KIrQPeNDCXYhr7QXd+AvaogOiyV3v8WLO1FfUlScAM9s72g+f/0RJkftb+ktweWaw9TlTDw==","shasum":"2697e964e7c4675a5b203249b08b82fe117474e8","tarball":"https://registry.npmjs.org/@blazyts/better-standard-library/-/better-standard-library-1.0.0.tgz","fileCount":116,"unpackedSize":79374,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDYFIqwtnzV1lFH/fqbyJMDqyPytcNbIydZvho4Ig28qQIhAK80s3JLvk6bWUyk15C8eRTILM2tpJ6cjZfLTFEbYI5a"}]},"_npmUser":{"name":"rado321123","email":"radoslavcvetanov5@gmail.com"},"directories":{},"maintainers":[{"name":"rado321123","email":"radoslavcvetanov5@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/better-standard-library_1.0.0_1749334540230_0.3757320544372178"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-07T22:15:40.129Z","1.0.0":"2025-06-07T22:15:40.386Z","modified":"2025-06-07T22:15:40.644Z"},"maintainers":[{"name":"rado321123","email":"radoslavcvetanov5@gmail.com"}],"description":"A TypeScript-first, ergonomic, and safe standard library inspired by Rust and functional programming paradigms. This package provides improved error handling, data structures, and utility types for modern TypeScript projects.","readme":"# Better Standard Library\n\nA TypeScript-first, ergonomic, and safe standard library inspired by Rust and functional programming paradigms. This package provides improved error handling, data structures, and utility types for modern TypeScript projects.\n\n## Installation\n\n```bash\nnpm install @blazyts/better-standard-library\n```\n\n## Features\n\n- **Result & Option types** for safe error handling\n- **Pattern matching** utilities\n- **Async result wrappers**\n- **Functional data structures** (arrays, groups, safe strings, etc.)\n- **Metaprogramming helpers**\n- **Logging and panic utilities**\n- **Type-safe networking types**\n\n## Example Usage\n\n### Basic Result Creation and Pattern Matching\n```typescript\nimport { Err, Ok } from \"@blazyts/better-standard-library\";\n\nconst success = Ok(42);\nconst failure = Err(\"Something went wrong\");\n\n// Pattern matching\nconst value = success.match({\n    Ok: val => val * 2,\n    Err: err => 0,\n});\n\n// Chaining operations\nconst result = success\n    .map(val => val * 2)\n    .mapErr(err => `Error: ${err}`);\n\nconsole.log(\"Value:\", value); // 84\nconsole.log(\"Result:\", result.unwrapOr(0)); // 84\n```\n\n### Error Handling Example\n```typescript\nimport { Err, Ok, Result } from \"@blazyts/better-standard-library\";\n\nfunction divide(a: number, b: number): Result<number, string> {\n    if (b === 0) {\n        return Err(\"Cannot divide by zero\");\n    }\n    return Ok(a / b);\n}\n\nconst result = divide(10, 2)\n    .andThen(val => divide(val, 0))\n    .mapErr(err => `Calculation failed: ${err}`);\n```\n\n### Async Operations Example\n```typescript\nimport { asyncResult, Err, Ok, Result } from \"@blazyts/better-standard-library\";\n\nasync function fetchUser(id: number): Promise<Result<{ id: number; name: string }, string>> {\n    return new Promise((resolve) => {\n        setTimeout(() => {\n            if (id > 0) {\n                resolve(Ok({ id, name: \"John Doe\" }));\n            } else {\n                resolve(Err(\"Invalid user ID\"));\n            }\n        }, 1000);\n    });\n}\n\nasync function fetchUserDetails(userId: number): Promise<Result<{ age: number }, string>> {\n    return new Promise((resolve) => {\n        setTimeout(() => {\n            if (userId > 0) {\n                resolve(Ok({ age: 30 }));\n            } else {\n                resolve(Err(\"Failed to fetch user details\"));\n            }\n        }, 1000);\n    });\n}\n\nasync function main() {\n    const userId = 1;\n    const result = await asyncResult(() => fetchUser(userId))\n        .andThen(async (user) => {\n            console.log(\"User:\", user);\n            return fetchUserDetails(user.id);\n        })\n        .map(details => ({ ...details, fullName: \"John Doe\" }))\n        .mapErr(err => `Operation failed: ${err}`);\n\n    if (result.isOk()) {\n        console.log(\"Success:\", result.unwrap());\n    } else {\n        console.error(\"Error:\", result.unwrapErr());\n    }\n}\n\nmain();\n```\n\n### TypeScript Integration Example\n```typescript\nimport { Err, Ok, Result } from \"@blazyts/better-standard-library\";\n\ntype User = {\n    id: number;\n    name: string;\n};\n\nfunction fetchUser(id: number): Result<User, string> {\n    return Ok({ id, name: \"John Doe\" });\n}\n\nconst user = fetchUser(1)\n    .map(user => ({ ...user, fullName: user.name }))\n    .unwrapOrThrow();\n```\n\n## Directory Structure\n- `src/` — implementation\n- `example-usage/` — runnable usage examples\n- `tests/` — unit tests\n\n## Contributing\nFeel free to add more examples or improve existing ones! Each example should:\n1. Be self-contained\n2. Demonstrate a specific concept\n3. Include proper error handling\n4. Show best practices\n5. Be well-documented\n\n---\n\nFor more advanced usage, see the `example-usage/advanced-examples` and `example-usage/basic-examples` directories.\n","readmeFilename":"README.md","_rev":"1-a25a2a2f4e8153a2057f6fb588122fed"}