Generate concrete typescript types for JSON columns based on pg_jsonschema
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- postgresql, typescript
Direzione di ricerca
Parti dall'entry point supabase gen types typescript e traccia il modo in cui le colonne JSON di PostgreSQL vengono attualmente generate come JSON. Analizza come potrebbero essere identificate e convertite le verifiche pg_jsonschema, quindi verifica che lo schema dell'array di esempio produca string[], mentre le verifiche non supportate o complesse ricadano su JSON.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
When I create JSON checks on columns with pg_jsonschema it would be super cool to have it also in generated ts types.
Currently when I create the following table
CREATE TABLE public.some_table (
id SERIAL PRIMARY KEY,
arr jsonb not null check (
jsonb_matches_schema ('{
"type": "array",
"items": {
"type": "string"
}
}',
arr
)
)
);
Generating types with supabase gen types typescript produces the following types
...
arr: JSON
...
But I'd like to get
...
arr: string[]
...
Potentially it would be achievable by parsing passed schema in checks via a tool like https://github.com/bcherny/json-schema-to-typescript
Describe alternatives you've considered
I haven't found any other alternatives aligned with the current CLI architecture
Additional context
I don't know what I'd expect with more complex check expressions. Maybe ignore them and fall back to JSON.
- Lingua principale
- TypeScript
- Stelle
- 1.3k
- Fork
- 228
- Merge medio
- 1g 8h
- PR unite (30g)
- 3
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di supabase/postgres-meta
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
supabase/postgres-meta#1173 ·
I maintainer di solito rispondono entro 2 giorni
-
db.ts: init().end() resolves before the connection pool is closedForse già presa @h-zahar l’ha presa 53 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
supabase/postgres-meta#1150 ·
I maintainer di solito rispondono entro 2 giorni
-
Relationship column lists are null for dotted/mixed-case schemasForse già presa @hsusul l’ha presa 57 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
supabase/postgres-meta#1147 ·
I maintainer di solito rispondono entro 2 giorni
-
functions.create/retrieve fails for multi-word argument typesForse già presa @hsusul l’ha presa 57 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
supabase/postgres-meta#1146 ·
I maintainer di solito rispondono entro 2 giorni
-
Column check introspection corrupts expressions with NOT VALID / NO INHERITForse già presa @hsusul l’ha presa 58 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
supabase/postgres-meta#1143 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di supabase/postgres-meta
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
kunchenguid/gh-axi#247 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
lidge-jun/opencodex#8101 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
effort:S P3 refactor
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
nightscout/nocturne#3243 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
JuliusBrussee/caveman#1449 ·
I maintainer di solito rispondono entro 1 giorno