web-dev-qa-db-fra.com

Types de fichiers .gql ou .graphql avec Node

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!

14
Tyler Bainbridge

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 .

Usage

import { importSchema } from 'graphql-import'
import { makeExecutableSchema } from 'graphql-tools'

const typeDefs = importSchema('schema.graphql')
const resolvers = {}

const schema = makeExecutableSchema({ typeDefs, resolvers })

Exemples

Importation de champs spécifiques

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!
}
13
robocat

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}`
3
Anton Kalik

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.

0
Efosa