SQL till TypeScript gränssnittskonverterare
Konvertera PostgreSQL CREATE TABLE definitioner som stöds till TypeScript radgränssnitt med tydlig nullbarhet och exakt representation av numeriska värden.
Så fungerar det
Klistra in en eller flera PostgreSQL CREATE TABLE instruktioner. Parsern stöder valfritt IF NOT EXISTS, schemanamn, citerade identifierare, inbyggda typer, precision, standardvärden, nullbegränsningar, primärnycklar och vanliga begränsningar.
Granska det genererade gränssnittet för varje tabell. Nullable kolumner förblir obligatoriska egenskaper med värdetypen `| null`. JSDoc lägger till sanerade standardvärden och anteckningar om primärnycklar.
Jämför utdata med frågans form och drivrutinens konfiguration. En fråga som endast väljer vissa kolumner har en annan form än den fullständiga tabellrad som visas här.
Använd utdata som utgångspunkt för applikationstyper. Lägg till körningsvalidering och justera drivrutinsspecifika representationer i projektet.
Steg för steg
- Klistra in PostgreSQL tabelldefinitioner som stöds
- Granska radernas egenskaper och värdetyper
- Kontrollera frågor och drivrutinens värden
Praktiskt exempel
Exempelindata: CREATE TABLE finance.positions (id bigint PRIMARY KEY, ticker varchar(12) NOT NULL, shares numeric(12, 4) NOT NULL, note text DEFAULT 'created, reviewed', metadata jsonb);
Den genererade radtypen innehåller id och ticker som obligatoriska strängar, shares som obligatorisk sträng, note som obligatorisk nullable sträng och metadata som obligatoriskt nullable unknown värde. bigint och numeric blir strängar så att JavaScript tal inte antas bevara exakta värden.
När konverteraren passar
Använd konverteraren för att göra tabelldefinitioner i PostgreSQL som stöds till en starttyp för fullständiga databasrader. Den skiljer nullable värden från egenskaper som saknas.
Granska typmappningar mot drivrutinen och frågeresultaten innan gränssnittet används i ett program.
Vanliga misstag
Behandla inte en nullable kolumn som en valfri egenskap. En vald rad innehåller kolumnen även om värdet kan vara null.
Utgå inte från att drivrutinen returnerar numeric och bigint som strängar. Konfigurera eller konvertera resultaten så att de passar det genererade gränssnittet.
Regler för parsning och typer
Dela för varje tabell som stöds definitioner vid komman utanför parenteser och citerade värden. Mappa varje kolumns SQL typ till en TypeScript typ. Skapa en obligatorisk egenskap och lägg till `| null` när kolumnen tillåter null. Primärnyckelkolumner tillåter inte null. Standardvärden är endast dokumentation.
Verktyget genererar radgränssnitt från en begränsad PostgreSQL CREATE TABLE form. Exakta numeric och bigint värden representeras som strängar. Programmet behöver konfigurera drivrutinen eller konvertera resultat. Okända SQL typer blir unknown. JSON och JSONB blir också unknown.
Omfattning och begränsningar
Parsern stöder en begränsad PostgreSQL CREATE TABLE form, inte hela SQL språket. Den stöder grundläggande definitioner, namn med schema och citattecken, nästlade uttryck, vanliga begränsningar, standardvärden och primärnycklar. Instruktioner och alternativ som inte stöds ger fel utan partiella gränssnitt. ALTER TABLE, vyer, CREATE TABLE AS, partitionering, arv och hela PostgreSQL grammatiken stöds inte. numeric och bigint skrivs ut som strängar och kräver drivrutinskonfiguration eller konvertering. Datum blir strängar. Okända typer blir unknown. Egenskaperna beskriver fullständiga rader, inte valfria insättningsfält eller partiella frågeresultat. Genererade typer validerar inte data vid körning. Indata kan innehålla upp till 100 000 tecken.
Viktiga begrepp
- Radgränssnitt
- Ett databasradgränssnitt beskriver egenskaperna som returneras för en fullständig rad, även nullable värden.
- Nullable kolumn
- En nullable kolumn tillåter värdet null. Det betyder inte att egenskapen saknas i en fullständig rad.
- Primärnyckel
- En primärnyckel identifierar rader unikt och dess kolumner får inte innehålla null i PostgreSQL.
Relaterade uppgifter
Konvertera definitioner av tabeller i PostgreSQL som stöds till TypeScript radtyper. Använd ett separat verktyg för API scheman när du beskriver HTTP förfrågningar och svar.
Konverteraren beskriver databasraders struktur. Den skapar inte körningsvalidering eller funktioner för dataåtkomst.
FAQ
Vilka SQL instruktioner kan verktyget läsa?
Parsern läser CREATE TABLE instruktioner som stöds och delar kolumn och begränsningsdefinitioner endast på översta nivån. Komman i typers precision, nästlade uttryck och citerade standardvärden hålls ihop. Kolumnnamn och typer, nullbarhet, standardvärden och primärnycklar används för att skapa ett gränssnitt per tabell.
Hur representeras nullable kolumner och primärnycklar?
En nullable kolumn finns fortfarande i en vald rad. Därför är egenskapen obligatorisk och värdetypen innehåller null. En NOT NULL kolumn och en primärnyckel innehåller inte null. Ett standardvärde påverkar infogningar, inte om egenskapen finns i en vald rad.
Hur mappas SQL typer till TypeScript?
Små heltal och flyttalstyper blir number. bigint, numeric, decimal och money blir string för att bevara exakta värden. Ställ in databasdrivrutinen så att dessa värden returneras som strängar eller konvertera dem innan den genererade typen används. JSON och JSONB blir unknown eftersom JSON kan innehålla ett skalärt värde, en array, ett objekt eller null. Datum och tid blir string.
Vilken syntax stöds inte?
Parsern stöder en begränsad PostgreSQL CREATE TABLE form med valfritt IF NOT EXISTS, valfritt schema, citerade identifierare, kolumner, vanliga begränsningar, standardvärden och primärnycklar. Den avvisar alternativ efter tabellens parenteser och andra instruktioner i stället för att returnera en partiell utdata. Den hanterar inte ALTER TABLE, vyer, CREATE TABLE AS, partitioner, arv eller alla PostgreSQL typer och begränsningar.
Vad tillför JSDoc alternativet?
När JSDoc är aktiverat läggs en säker sammanfattning till av kolumnens standardvärde och primärnyckelstatus. Radbrytningar plattas ut och kommentaravslut neutraliseras så att SQL inte kan stänga den genererade kommentaren. Alternativet ändrar endast dokumentationen, inte TypeScript egenskapstyperna.
Relaterade verktyg
Kombinera databasradgränssnitt med ett separat API schema och körningsvalidering när programmet behöver dessa kontrakt.