メインコンテンツまでスキップ
バージョン: 0.13.0 (Previous)

🧱 Commonブロック

Commonブロックは、@nodeblocks/backend-sdkからのblocks/commonblocks/utilsを通じてエクスポートされる再利用可能なSDK操作とエラー型です。CommonBlockErrorからassertHasCreatedAtまでがblocks/commonから;redirectTogenerateRandomPasswordblocks/utilsからの共有ユースルブロックとして来ます。

目録

エクスポート種類入力結果 / 動作 / エラー
CommonBlockErrorエラー型メッセージ、オプションのデータ共有ブロックによる予期された失敗の基本クラス。
CommonUnexpectedBlockErrorエラー型メッセージ、オプションのデータ予期せぬCommonブロック失敗を識別;assertHasCreatedAtによって使用される。
normalizeEmptyBody関数なし空オブジェクトを直接返し、Resultを返さない。
normalizeRawDocument関数オプション _id を持つレコード_id なしの Result<Record<string, unknown>, never> を返す。
normalizeDocuments関数オプション _id を持つレコードの配列正規化されたレコードを含む不変な結合 Result を返す。
assertHasCreatedAt関数createdAt を持つことが期待されるレコード文字列値の場合は ok(true) を、そうでなければ CommonUnexpectedBlockError を返す。
redirectTo関数Express Response、URL、オプションのステータスresponse.redirectを呼び出します;デフォルトのステータスは 302Result<void, Error> を返します。
generateRandomPassword関数オプションの長さ暗号的に安全なパスワードを生成;デフォルトの長さは 16

詳細

CommonBlockError

実装

CommonBlockErrorはコンストラクタを上書きせずにSDKのBlockErrorを拡張します。メッセージとオプションのunknownデータを受け取り、実行時名をCommonBlockErrorに設定し、HTTPステータスコードを carry しません。共有ブロックによる予期された失敗のために使用します;現在のCommon関数はこれを直接構築しません。

CommonUnexpectedBlockError

実装

CommonUnexpectedBlockErrorBlockErrorを拡張し、メッセージとオプションのunknownデータを受け取り、HTTPステータスコードを carry しません。assertHasCreatedAtは、提供されたレコードに文字列のcreatedAtがない場合、メッセージInvalid createdAt.でこれを返します。

normalizeEmptyBody

実装

シグネチャ:normalizeEmptyBody(): object。常に直接{}を返し、失敗できず、204レスポンスターミネーターの前に配置されることが多いです。Authentication、Organization、Product、Notificationルートパイプラインによって消費されます;AuthenticationルートOrganizationルートProductルートを参照してください。

normalizeRawDocument

実装

シグネチャ:normalizeRawDocument(document: Record<string, unknown> & { _id?: string }): Result<Record<string, unknown>, never>。最上位のMongoDB _idのみを削除し、他のすべてのフィールドを保持し、残りのレコードをokに返します。Productバリエーションとプロフィールレスポンスパイプラインで使用されます;ProductルートProfileルートを参照してください。

normalizeDocuments

実装

シグネチャ:normalizeDocuments(documents: Record<string, unknown>[]): Result<Record<string, unknown>[], never>。各レコードにnormalizeRawDocumentを適用し、不変な結果を入力順で結合します。コンシューマーにはChatメッセージテンプレートルートProductルートProfileルート、Notificationルートが含まれます。

assertHasCreatedAt

実装

シグネチャ:assertHasCreatedAt(document: Record<string, unknown>): Result<boolean, Error>createdAtが文字列の場合のみtrueで成功します。欠落または非文字列値の場合は、Invalid createdAt.CommonUnexpectedBlockErrorを返します。Notificationバッチ既読パイプラインでは、最新の既読アンカーを検証するために使用します。

redirectTo

実装

シグネチャ:redirectTo(response: Response, url: string, statusCode = 302): Result<void, Error>。Express response.redirect(statusCode, url)を呼び出し、返された値をokに包みます;Expressによってスローされた例外はエラーResultに変換されません。プロバイダーリダイレクトフローをOAuthルートでターミネートします。

generateRandomPassword

実装

シグネチャ:generateRandomPassword(length = 16): string。Node.js crypto.randomByteslengthバイトを取得し、大文字英字、小文字英字、数字、ソース定義の特殊文字セットに変換します。Google、LINE、Twitter OAuthアカウント作成で、フォールバック資格情報をハッシュ化する前に使用されます。負の長さはrandomBytesによって拒否されます;ゼロの長さは空文字列を返します。