tRPC ソース コードの arrayToDict 関数

Barbara Streisand
リリース: 2024-11-04 05:00:01
オリジナル
601 人が閲覧しました

この記事では、tRPC ソース コードにある arrayToDict 関数を分析します。

// https://github.com/trpc/trpc/pull/669
function arrayToDict(array: unknown[]) {
 const dict: Record<number, unknown> = {};
 for (let index = 0; index < array.length; index++) {
 const element = array[index];
 dict[index] = element;
 }
 return dict;
}
ログイン後にコピー

この関数は簡単です。 dict は、for ループの上で初期化されるオブジェクトです。この for ループでは、要素に array[index] が代入されており、dict は配列のインデックスをキーとし、値をインデックスに基づく配列項目とするオブジェクトです。

この関数は単純ですが、このソリューションが KATT (tRPC の作成者) に提示される前に、PR: https://github.com/trpc/trpc/pull/669 で多くのことが議論されました。

このプル リクエストは、修正: zod .optional() 入力によるバッチ処理に関するものでした。

PR の説明:

- JSON.stringify([未定義]) === [null]

- これにより、null

ではなくオブジェクトまたは未定義が期待されるため、.optional() zod スキーマで問題が発生します。 - 生の入力が === null の場合にバリデーターを 2 回実行する醜いハックを修正しました。

- @simonedelmann のアイデアによって修正されました

意思決定がどのように行われるかについて洞察を得るために、このプル リクエストの会話に目を通すことをお勧めします。この会話は、アイデアがどのように飛び交うかを示し、また、それが単なるエッジケースであり、最終的に arrayToDict アイデアを採用することを選択した場合、アイデアに基づいて何が壊れる可能性があるかについても話します。

このプル リクエストには、

を提供する All Contributors Github アプリもあります。 アイデアに基づいて貢献者に帰属します。これが All Contributors の目的です。コードをプッシュした人だけでなく、すべての貢献者を認識します。すべての投稿者を使用すると、コードを書かずにアイデアを提示した場合でも、コメントを付けて投稿者にすることができます:



」 @all-contributors はレビュー用に @username を追加します

そして @all-contributors はタグ付けされたユーザーを投稿者として追加します。

私たちについて:

Thinkthroo では、大規模なオープンソース プロジェクトを研究し、アーキテクチャ ガイドを提供しています。私たちは、tailwind を使用して構築された、プロジェクトで使用できる resubale コンポーネントを開発しました。 Next.js、React、Node 開発サービスを提供します。

プロジェクトについて話し合うためのミーティングを予約してください。

arrayToDict function in tRPC source code

arrayToDict function in tRPC source code

参考文献:

  1. https://github.com/trpc/trpc/blob/next/packages/client/src/links/internals/httpUtils.ts#L57

  2. https://github.com/trpc/trpc/pull/669

以上がtRPC ソース コードの arrayToDict 関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート