0.1.0 • Published 7 years ago

graphql-factory-express v0.1.0

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

GraphQL Factory Express

Creates graphql-factory middleware for express and provides a basic bodyParser middleware

Example

import express from 'express'
import * as graphql from 'graphql'
import GraphQLFactory from 'graphql-factory'
import factoryExpress from 'graphql-factory-express'
import definition from './definition'

const factory = GraphQLFactory(graphql)
const lib = factory.make(definition)
const PORT = 8080
const app = express()

app.use(factoryExpress.bodyParser)
app.use('/graphql', factoryExpress(lib, {
  rootValue (value, req) {
    value.jwt = req.token
  }
}))

app.listen(PORT, err => {
  if (err) {
    console.log(err)
    process.exit(1)
  }
  console.log('Server started on port:', PORT)
})

API

GQLFactoryExpress (lib:GQLFactoryLibrary, [options:Object])

Creates a new middleware

Parameters

  • lib - GraphQL Factory Library containing schema helper methods
  • [options]
    • timeout=10000 {Int}- Timeout in ms before a request fails with a timeout error
    • rootValue {Object|Function} - Object or function used to modify the rootValue before the request is sent. Function takes (value, request) as arguments
    • contextValue {Object|Function} - Object or function used to modify the contextValue before the request is sent. Function takes (value, request) as arguments
    • variableValues {Object|Function} - Object or function used to modify the variableValues before the request is sent. Function takes (value, request) as arguments
.bodyParser (req:Request, res:Response, next:Function)

Creates a new bodyParser, uses same parameters as the body-parser module except only parses JSON

Request Body

Requests must be sent using the POST method with a JSON formatted body containing and object with the following fields

  • schema - Name of the schema to make the request on
  • requestString - The graphql request string
  • rootValue - Optional rootValue
  • contextValue - Optional contextValue
  • variableValues - Optional variableValues
  • operationName - Optional operationName

Successful requests will return with a 200 status code with a JSON formatted body