Automatic graph generator for Sequelize ORM, it's magic! π§ββοΈπ§π»βπ»
This is a Node.js module available through the
npm registry. It can be installed using the
npm
or
yarn
command line tools.
$ yarn add magic-graphql
This is an example of how to use the library πͺ
const http = require('http')
const express = require('express')
const graphqlServer = require('./magic-graphql')
const app = express()
const httpServer = http.createServer(app)
// ! GraphQL setup
graphqlServer(app, {
modelDirPath: '../models', // Or require('../models')
customsDirPath: null,
graphqlEndpint: '/graphql',
subscriptions: true,
httpServer: httpServer,
dataloader: true,
dataloaderOptions: {
max: 500,
cache: true,
batch: true
},
context: {}
})
httpServer.listen(global.ConfigApp, () => {
console.log(`β
Starting server`)
})
Option Key | Type | Default | Description |
---|---|---|---|
modelDirPath | String / Object | ../models |
Path where the models folder is located. |
customsDirPath | String | null |
Folder for custom queries and mutations. |
graphqlEndpint | String | /graphql |
GraphQL endpoint. |
subscriptions | Boolean | false |
Set to true to enable GraphQL subscriptions, this requires an http server. |
httpServer | Object | null |
HttpServer it is required to be able to use GraphQL subscriptions. |
dataloader | Boolean | true |
Set to false to disable dataloader. |
dataloaderOptions | Object | { ... } |
Dataloader options. |
context | Object | {} |
Context object. |
Option Key | Type | Default | Description |
---|---|---|---|
batch | Boolean | true |
Set to false to disable batching. |
max | Number | 500 |
Limits the number of items that get passed in to the batch. May be set to 1 to disable batching. |
cache | Boolean | true |
Set to false to disable memoization caching. |
- express: Fast, unopinionated, minimalist web framework
- express-graphql: Production ready GraphQL HTTP middleware.
- graphql: A Query Language and Runtime which can target any service.
- graphql-playground-middleware-express: GraphQL IDE for better development workflows (GraphQL Subscriptions, interactive docs & collaboration).
- graphql-relay: A library to help construct a graphql-js server supporting react-relay.
- graphql-sequelize: GraphQL & Relay for MySQL & Postgres via Sequelize
- lodash: Lodash modular utilities.
- mysql2: fast mysql driver. Implements core protocol, prepared statements, ssl and compression in native JS
- sequelize: Multi dialect ORM for Node.JS
- nodemon: Simple monitor script for use during development of a node.js app.
MIT