web-dev-qa-db-ja.com

Nodeを含む.gqlまたは.graphqlファイルタイプ

私はアポロのgraphql-server-express with Nodeそして私は私の「typedef」スキーマ定義ファイルを.graphql or .gqlファイルを明確にし、構文を強調表示します。

これを行う最良の方法は何ですか?唯一の選択であると思われるBabel(?)を超えて、オンラインで適切なリソースを見つけることができません。

助けてくれてありがとう!

14

あなたはこれまでに解決策を見つけたと確信していますが、他の人にとってはこれが役立つかもしれません 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 })

特定のフィールドのインポート

次のディレクトリ構造を想定します。

.
├── 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

それを正しい方法で実装する方法と同じ質問があります。とにかくこれは私のために働きます。

import {gql} from 'apollo-server-express'
import * as types from './types.graphql'

export const typeDefs = gql`${types}`
3
Anton Kalik

同じ質問がありましたが、サーバー側パイプラインにbabel/webpackを導入せずにあなたが求めていることを達成する唯一の方法は、エクスポートされたテンプレート文字列としてクエリを記述することです。

例えば.

/* query.gql */
module.exports = `
schema {
  query: Query
  mutation: Mutation
}

type Query {
  posts: [Post]
  post(id:String, slug:String): Post
  user(uid:String): User
}
...
`

ありがたいことに、GraphQLのVS Code構文ハイライターはこの方法をサポートしています。

0
Efosa