Heim > Web-Frontend > js-Tutorial > Hauptteil

arrayToDict-Funktion im tRPC-Quellcode

Barbara Streisand
Freigeben: 2024-11-04 05:00:01
Original
603 Leute haben es durchsucht

In diesem Artikel analysieren wir die arrayToDict-Funktion im tRPC-Quellcode.

// 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;
}
Nach dem Login kopieren

Diese Funktion ist unkompliziert. dict ist ein Objekt, das oberhalb der for-Schleife initialisiert wird. In dieser for-Schleife wird array[index] dem Element zugewiesen und dict ist ein Objekt, das Array-Indizes als Schlüssel und Werte als Array-Elemente basierend auf dem Index angibt.

Obwohl diese Funktion einfach ist, wurde in der PR viel diskutiert: https://github.com/trpc/trpc/pull/669, bevor diese Lösung KATT (Ersteller von tRPC) vorgestellt wurde.

Bei dieser Pull-Anfrage ging es um — Fix: Stapelverarbeitung mit zod .optional()-Eingabe.

PR-Beschreibung:

- JSON.stringify([undefiniert]) === [null]

– Dies führt zu Problemen mit .optional() Zod-Schemas, da ein Objekt oder ein undefiniertes Objekt erwartet wird, nicht null

– Behoben durch einen hässlichen Hack, der den Validator zweimal ausführt, wenn er fehlschlägt, wenn die Roheingabe === null war.

- behoben durch die Idee von @simonedelmann

Ich würde empfehlen, dieses Pull-Request-Gespräch durchzugehen, um Ihnen einen Einblick in die Art und Weise zu geben, wie Entscheidungen getroffen werden. Dieses Gespräch zeigt, wie Ideen herumgereicht werden, und es wird auch darüber gesprochen, was aufgrund einer Idee kaputt gehen könnte, wenn es sich nur um einen Grenzfall handelt und sie sich schließlich für die arrayToDict-Idee entscheiden.

In dieser Pull-Anfrage finden Sie auch die Github-App „All Contributors“, die Folgendes bietet:

Zuschreibung an den Mitwirkenden basierend auf einer Idee. Darum geht es bei All Contributors: Anerkennung aller Mitwirkenden, nicht nur derjenigen, die Code vorantreiben. Mit „Alle Beiträge“ können Sie, selbst wenn Sie eine Idee präsentieren, ohne Code zu schreiben, sie mit einem Kommentar zum Mitwirkenden machen:



@Alle Mitwirkenden fügen @Benutzernamen für Bewertungen hinzu

und @all-contributors fügt markierten Benutzer als Mitwirkender hinzu.

Über uns:

Bei Thinkthroo studieren wir große Open-Source-Projekte und stellen Architekturführer zur Verfügung. Wir haben mit Rückenwind resubale Komponenten entwickelt, die Sie in Ihrem Projekt nutzen können. Wir bieten Next.js-, React- und Node-Entwicklungsdienste an.

Buchen Sie einen Termin mit uns, um Ihr Projekt zu besprechen.

arrayToDict function in tRPC source code

arrayToDict function in tRPC source code

Referenzen:

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

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

Das obige ist der detaillierte Inhalt vonarrayToDict-Funktion im tRPC-Quellcode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage