2016-04-08 15 views
10

Ho un progetto che utilizza il convo GraphQL, Relè e Flusso. C'è un modo per utilizzare lo schema GraphQL per alimentare il flusso in modo che i puntelli React possano essere digitati senza ridichiarne i tipi?È possibile utilizzare lo schema generato Graphql come definizioni di flusso?

Per inoltro Sto già utilizzando lo script che genera due file: schema.json e schema.graphql. Il plugin Babel utilizza schema.json per tradurre le query in javascript.

L'altro file, schema.graphql è simile alla definizione della sintassi del flusso per i tipi, ma ci sono differenze. Ho provato una volta a import type {Definition} from "./schema.graphql" da esso ma stava fallendo silenziosamente.

+0

Non c'è modo pronto per l'uso sono consapevoli, ma penso che si può scrivere babel-plugin per da soli – gyzerok

risposta

8

Il problema è che i tipi scalari GraphQL possono essere utilizzati per rappresentare valori in vari formati e non ereditano da un tipo di base a cui si potrebbe ricorrere per il flusso.

Scalare non può solo verificare una "stringa" ma "una stringa di 32 cifre esadecimali". Non è possibile dichiarare questo tipo di tipo nel flusso.

Ecco alcune alternative: babel-plugin-typecheck, json-to-flow

2

Così, dopo un po 'ho deciso di affrontare questo dato che il nostro progetto è iniziato a crescere e abbiamo iniziato ad allentare i nostri tipi. Alla fine, la soluzione più semplice è stata quella di prendere la stampante Schema e modificarla in modo da generare un testo scorrevole, salvarlo in un file .js e librerie di punti lì.

Cercherò di postare in github in una data successiva

+0

suoni interessante, hai fatto qualche progresso? potresti condividere il codice? – Barak

+3

Ho avuto un tentativo qui: https://www.npmjs.com/package/gql2flow @Barak – Kloar

+1

@Kloar solo per farvi sapere, lo stiamo usando in produzione da un po 'ora, funziona come un fascino! – Barak