J'utilise graphql-server-express
D'Apollo avec Node et je voudrais transformer mes fichiers de définition de schéma "typedef" en fichiers .graphql or .gql
Pour plus de clarté et de coloration syntaxique.
Quelle est la meilleure façon de procéder? Je ne trouve pas de bonnes ressources en ligne au-delà de Babel (?) Qui semble être le seul choix.
Merci beaucoup pour l'aide!
Je suis sûr que vous avez trouvé une solution jusqu'à présent, mais pour d'autres, cela pourrait être utile https://github.com/prismagraphql/graphql-import .
import { importSchema } from 'graphql-import'
import { makeExecutableSchema } from 'graphql-tools'
const typeDefs = importSchema('schema.graphql')
const resolvers = {}
const schema = makeExecutableSchema({ typeDefs, resolvers })
Supposons la structure de répertoires suivante:
.
├── a.graphql
├── b.graphql
└── c.graphql
a.graphql
# import B from "b.graphql"
type A {
# test 1
first: String
second: Float
b: B
}
b.graphql
# import C from 'c.graphql'
type B {
c: C
hello: String!
}
c.graphql
type C {
id: ID!
}
Vous avez la même question sur la façon de le mettre en œuvre correctement. Quoi qu'il en soit, cela fonctionne pour moi.
import {gql} from 'apollo-server-express'
import * as types from './types.graphql'
export const typeDefs = gql`${types}`
J'avais la même question, et je crois que la seule façon d'accomplir ce que vous demandez sans introduire babel/webpack dans votre pipeline côté serveur est d'écrire votre requête en tant que chaîne de modèle exportée.
par exemple.
/* query.gql */
module.exports = `
schema {
query: Query
mutation: Mutation
}
type Query {
posts: [Post]
post(id:String, slug:String): Post
user(uid:String): User
}
...
`
Heureusement, les surligneurs de syntaxe VS Code pour GraphQL prennent en charge cette méthode.