はじめに

@praha/byethrow へようこそ。このライブラリは、JavaScript と TypeScript で失敗する可能性のある操作をエレガントかつシンプルに扱うために設計された、軽量でツリーシェイク可能な Result 型ライブラリです。

特徴

  • 🌲 Tree Shaking対応: 実際に使用する関数のみをバンドルできます。モダンな JavaScript バンドラーを念頭に設計されています。
  • 🧱 軽量&オブジェクトベース: クラスや複雑な継承構造はありません。理解しやすくデバッグも簡単なプレーンオブジェクトだけです。
  • 🔄 同期/非同期の統一処理: 同期の Result<T, E> と非同期の Promise<Result<T, E>> の両方をシームレスに扱えます。
  • 🎯 Resultを中心とした機能: 不必要なエイリアスや紛らわしい機能はありません。Result を中心とした機能で設計されています。
  • 🔗 合成可能な関数群: 強力な pipe 関数と、andThenandThrough などのチェーン可能な関数でシームレスに実装できます。
  • 🛡️ 完全に型安全: 全ての関数で型テストを実施しています。型エラーに悩まされることはありません。

byethrow を使うべき場面

このライブラリは以下のような場面に最適です。

  • API 呼び出し: ネットワークの問題で失敗する可能性がある場合
  • データバリデーション: 複数のエラーを蓄積または処理する必要がある場合
  • ファイル操作: 権限やI/Oエラーに遭遇する可能性がある場合
  • パーサーの実装: 無効な入力をグレースフルに処理すべき場合
  • ビジネスロジック: エラーが予想され、明示的に処理すべき場合

明示的なエラーハンドリングを活用して楽しくコーディングしましょう! 🎉