Introduction

Welcome to @praha/byethrow, a lightweight and tree-shakable Result type library designed to handle fallible operations in JavaScript and TypeScript with elegance and simplicity.

Features

  • 🌲 Tree-Shakable: Only include what you use. Lightweight and optimized for modern bundlers.
  • 🧱 Object-based Design: No classes or complex inheritance hierarchies. Just plain objects that are easy to understand and debug.
  • 🔀 Unified Sync/Async Handling: Works seamlessly with both Result<T, E> and Promise<Result<T, E>>.
  • 🎯 Focused Functionality: Result-centric utilities without unnecessary aliases or confusing variants.
  • 🔗 Composable Function: Powerful pipe function and chainable operations like andThen, andThrough for clean data flow.
  • 🛡️ Fully Type-Safe: All functions are type-tested. You won't be troubled by type errors.

When to Use byethrow

This library is perfect for:

  • API calls: that might fail due to network issues
  • Data validation: where you need to accumulate or handle multiple errors
  • File operations: that might encounter permissions or I/O errors
  • Parser implementations: where invalid input should be handled gracefully
  • Business logic: where errors are expected and should be handled explicitly

Happy coding with explicit error handling! 🎉