The package provides an object with directive classes and an array with GraphQL schemes:
SchemaDirective - object with directive classes
TypeDefsDirective - array with GraphQL schemes
Complete your schema configuration with these objects.
This is an example of how I do it in my projects:
Copy const { makeExecutableSchema } = require('graphql-tools')
const fs = require('fs')
const typeDefs = fs.readFileSync(__dirname + '/types.graphql', { encoding: 'utf8' })
const resolvers = require('./resolvers.js')
const { find, all } = require('./directives')
const {
TypeDefsDirective,
SchemaDirective
} = require('apollo-server-adonis-directives-pack')
module.exports = makeExecutableSchema({
typeDefs: [typeDefs, ...TypeDefsDirective],
resolvers,
schemaDirectives: { ...SchemaDirective, find, all }
})
You can also destructure SchemaDirective and include directives separately.
Copy /* ... */
const {
TypeDefsDirective,
SchemaDirective: { belongsTo }
} = require('apollo-server-adonis-directives-pack')
makeExecutableSchema({
/* ... */
schemaDirectives: { belongsTo, /* ... */}
})
Copy type User {
id: ID!
name: String
posts: [Post] @hasMany
token: Token @hasOne
}
type Post {
id: ID!
user_id: Int
user: User @belongsTo
}
type Token {
user_id: Int!
token: String!
user: User @belongsTo
}
For details on each directive, see the API description.