2016-04-08 6 views
10

Ich habe ein Projekt, das die Konvo GraphQL, Relais und Flow verwendet. Gibt es eine Möglichkeit GraphQL Schema zu verwenden, fließen, so die Reaktion Requisiten zu ernähren kann, ohne erneut deklariert werden, welche Arten eingegeben werden?Kann das von Graphql generierte Schema als Flow-Definitionen verwendet werden?

Für Relay verwende ich bereits das Skript, das zwei Dateien generiert: schema.json und schema.graphql. Die Babel-Plugin verwendet schema.json die Abfragen in Javascript zu übersetzen.

Die andere Datei, sieht schema.graphql ähnliche Syntax Definition für Typen fließen, aber es gibt Unterschiede. Ich habe es mal ausprobiert, import type {Definition} from "./schema.graphql" aber es scheiterte still.

+0

Es gibt keine ready-to-use, wie ich über bewusst bin, aber ich denke, man kann es selbst – gyzerok

Antwort

8

Das Problem mit diesem ist GraphQL Skalar-Typen verwendet werden können Werte in verschiedenen Formaten darzustellen und sie nicht von einem Basistyp erben Sie zurück zu für die Strömung fallen könnte.

Scalar kann nicht nur einen „string“ überprüft aber „string von 32 hexadezimalen Ziffern“. Es ist nicht möglich, diese Art von Typ im Flow zu deklarieren.

Hier sind einige Alternativen: babel-plugin-typecheck, json-to-flow

2

So nach einer Weile habe ich dies in Angriff zu nehmen entschieden, da unser Projekt zu wachsen begonnen und wir begannen unsere Art zu lösen. Am Ende ist die einfachste Lösung, die printerSchema und ändern es zu packen, damit es fließen freundlich Text ausgibt, speichern Sie sie in eine JS-Datei und Punkt-Bibliotheken gibt.

Ich werde versuchen, es in Github zu posten

in einem späteren Zeitpunkt
+0

Klänge babel-Plugin schreiben Interessant, hast du Fortschritte gemacht? Könnten Sie den Code teilen? – Barak

+3

Ich habe es hier versucht: https://www.npmjs.com/package/gql2flow @Barak – Kloar

+1

@Kloar nur damit Sie wissen, wir haben es seit einiger Zeit in der Produktion verwendet, funktioniert wie ein Charme! – Barak

Verwandte Themen