Konvertieren einer großen Liste von Typoskripttypen von der Kamel-Schreibweise in die Schlangen-Schreibweise nur für Sch

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Konvertieren einer großen Liste von Typoskripttypen von der Kamel-Schreibweise in die Schlangen-Schreibweise nur für Sch

by Guest » 13 Jan 2025, 17:52

Meine ASP.NET Core-Web-API serialisiert alle meine Klassen in Groß-/Kleinschreibung, wenn sie Antworten an das Frontend zurückgibt. Ich mache das schon seit einiger Zeit, aber seit kurzem nutzen wir eine GraphQL-API im Backend und verwenden Strawberry Shake, um Klassen und Clients für die Interaktion mit der GraphQL-API zu erstellen.
Weil ich sie wiederverwende Fast die gesamte API im Frontend unserer App (Vuejs + Typescript). Ich gebe nur diese durch Erdbeershakes generierten Klassen zurück, die in C# standardmäßig PascalCase sind, aber meine API konvertiert diese wieder in Snake Case, was perfekt ist, damit meine API konsistent ist alle meine Endpunkte und sogar diejenigen, die diese neuen GraphQL-Daten verwenden. Allerdings muss ich im Frontend Typen erstellen, um diese neuen GraphQL-Daten zu nutzen, und um es einfacher zu machen, habe ich eine schema.json von der GraphQL-API, die ich mit einem Online-Tool in TypeScript-Typen konvertiert habe. Auch hier ist alles großartig, außer dass schema.json die Kamel-Schreibweise hat, sodass die Typen, die in diesem Tool erstellt werden, ebenfalls die Kamel-Schreibweise haben. Daher muss ich einen Weg finden, diese riesige Liste von Typen nur für die Schlüssel in die Groß-/Kleinschreibung umzuwandeln (ich tendiere dazu, die Klassen selbst wie meine Backend-API in der Pascal-Schreibweise beizubehalten).
Gibt es eine einfache Möglichkeit, dies zu tun? Als Beispiel sind hier einige der Typen, die ich konvertieren muss, was etwa 3000 Codezeilen entspricht:

Code: Select all

export type QueryFetchRateArgs = {
exampleField: FetchRateInput
anotherExampleField: number
}
export type FetchRateInput = {
anotherCoolField: number
}
wird bei Verwendung von c# in Snake-Case umgewandelt:

Code: Select all

export type QueryFetchRateArgs = {
example_field: FetchRateInput
another_example_field: number
webURL: string
programIDs: number
}
export type FetchRateInput = {
another_cool_field: number
web_url: string
program_id_s: number
}
Letztendlich muss ich diese Camelcase-Typen nur für die Schlüssel in Snake Case umwandeln. Ich kann dies tun, bevor ich das Projekt erstelle, da die konvertierten Typen in einer TS-Datei gespeichert werden, damit ich sie referenzieren kann. Ich versuche, die Notwendigkeit zu reduzieren, dies manuell tun zu müssen, und bin deshalb gespannt, ob es eine bessere Lösung gibt.

Top