A Fastify plugin for integrating PostGraphile schemas with Mercurius
npm i @autotelic/mercurius-postgraphile
const mercuriusPostGraphile = require('@autotelic/mercurius-postgraphile')
const { Pool } = require('pg')
const connectionString = process.env.DATABASE_URL
const pgPool = new Pool({ connectionString })
module.exports = async function (fastify, options) {
fastify.register(mercuriusPostGraphile, {
connectionString,
pgPool
})
}
Name | Status | Type | Default | Description |
---|---|---|---|---|
connectionString |
Required | String | - | A postgreSQL database connection string, i.e. postgres://postgres:[email protected]:5432/postgres?sslmode=disable . |
pgPool |
Required | Object | - | A client or pool instance that will be passed to the pg library and used to connect to a PostgreSQL backend. |
instanceName |
Optional | String | public |
A string which specifies the PostgreSQL schema that PostGraphile will use to create a GraphQL schema. |
localStitchOpts |
Optional | Object | {} |
An object containing local subschema config options. |
postGraphileStitchOpts |
Optional | Object | {} |
An object containing PostGraphile subschema config options. stitchOpts for both the local and PostGraphile schemas implement the SubschemaConfig interface. Documention can be found here |
postGraphileContextOpts |
Optional | Object/Function | {} |
An object or callback function containing withPostGraphileContext options, outlined here |
postGraphileSchemaOpts |
Optional | Object | {} |
An object containing createPostGraphileSchema options, outlined here |
npm i
docker-compose up -d
npm run example
http :3000/graphql
http POST :3000/graphql
http://localhost:3000/graphiql
The user
query from PostGraphile and the localUser
query from Mercurius are used to merge the User
type. Check out the example to explore the stitch options implemented in merging the local and PostGraphile schemas.
query {
user(id: 1) {
username
verified
}
localUser(id: 1) {
username
verified
}
}