メインコンテンツまでスキップ
バージョン: 0.14.0 (以前)

🧱 アドレスブロック

アドレスブロックは、@nodeblocks/backend-sdkのblocksを通じてエクスポートされる再利用可能な郵便番号検索操作です。ドライバー検索を実行し、予期された検索失敗をスローするのではなくneverthrow結果を返します。

目録​

エクスポート種類入力結果 / 動作 / エラー
FindAddressServiceErrorエラー型メッセージ、オプションのデータ予期せぬドライバー失敗を包みます。
AddressNotFoundErrorエラー型メッセージ、オプションのデータドライバー検索がアドレスを持たないことを表します。
Address型なし{prefecture, city, postalCode, town?} または null。
FindAddressDriver型郵便番号findAddress(postalCode)の契約。
findAddress非同期関数ドライバー、郵便番号、オプションのキャッシュハイフンを正規化し、キャッシュを使用し、アドレス結果を返します。

詳細​

FindAddressServiceError​

実装

BlockErrorを拡張し、本質的なHTTPステータスを持ちません。findAddressはドライバーが非BlockErrorで拒絶した場合、このエラーを返します;findAddressRouteはこれを500にマッピングします。

AddressNotFoundError​

実装

FindAddressServiceErrorを拡張し、本質的なHTTPステータスを持ちません。nullドライバー結果はfindAddressでこのエラーになります;findAddressRouteはこれを404にマッピングします。

Address​

実装

パブリック型は{prefecture, city, postalCode, town?} | nullです。ドライバーはnullを返す場合がありますが、findAddressはこの結果をerr(AddressNotFoundError)に変換します;したがって成功結果はアドレスオブジェクトを含みます。

FindAddressDriver、findAddress、およびAddressサービスが接受するfindAddressCache構成によって使用されます。

FindAddressDriver​

実装

ホストはfindAddress(postalCode: string): Promise<Address>を提供します。Japan Postドライバーはこの契約を満たします。AddressサービスはfindAddressDriverとしてドライバーを注入し、findAddressがこれを消費します。

findAddress​

実装

シグネチャ:findAddress(findAddressDriver, postalCode, cache?): Promise<Result<Address, FindAddressServiceError>>、ここでcacheはReturnType<typeof createCache<string, Address>>です。

キャッシュとドライバーアクセスの前にすべてのハイフンを削除しますが、結果の郵便番号を検証しません;入力有効性は注入されたドライバーによって決定されます。真性値を持つキャッシュヒットは直接返されます。キャッシュミスでドライバーを呼び出し、ドライバー結果をキャッシュに書き込み、null結果をerr(AddressNotFoundError('No matching address found.'))に変換します。非BlockError拒絶はerr(FindAddressServiceError('Failed to find address.', {cause}))になります;既存のBlockErrorは保持されます。

キャッシュヒットチェックが真性ベースであるため、キャッシュされたnullはヒットを生みません。findAddressRouteによって使用され、AddressNotFoundErrorを404、FindAddressServiceErrorを500にマッピングします。