glennreyes / graphpack

☄️ A minimalistic zero-config GraphQL server.
https://codesandbox.io/s/k3qrkl8qlv
MIT License
1.99k stars 80 forks source link

support for structured GraphQL Schema #37

Open vreality64 opened 5 years ago

vreality64 commented 5 years ago

Hi, it's a feature request not a bug.

I think GraphQL schema could be more flexible than now. For now, I have to define all GraphQL schema and resolver to schema.graphql, resolvers.js. I know resolvers are more options but not enough.

My proper structure for GraphQL is like this. each entry has own definitions.

src/
├── definitions
│   ├── groot
│   │   ├── groot.resolvers.js
│   │   └── groot.graphql
│   └── hello
│       ├── hello.resolvers.js
│       └── hello.graphql
└── index.js

3 directories, 5 files

However, this structure is not worked with graphqlpack. code sandbox has following error message.

Error: Couldn't find any resolvers. Please add resolvers to your src/resolvers.js
    at Module../node_modules/graphpack/lib/server.js

How about your thought on above GraphQL schema structure support? I think merge-graphql-schemas can make things works easily. this repository will show you how to use the merge-graphql-schemas and what the benefits are. 😃

glennreyes commented 5 years ago

You can use import definitions in GraphQL SDL to achieve your structure:

schema.graphql

# import Post from "posts.graphql"

type Query {
  posts: [Post]
}
vreality64 commented 5 years ago

Yes. I know. However, that has the disadvantage of writing the all Query in schema.graphql. My point is to write Query in individual entity schema to fulfill separation of concern.