Skip to content

Automatic graph generator for Sequelize ORM, it's magic! πŸ§™β€β™‚οΈπŸ§‘πŸ»β€πŸ’»

License

Notifications You must be signed in to change notification settings

lk321/magic-graphql

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

58 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

magic-graphql

Automatic graph generator for Sequelize ORM, it's magic! πŸ§™β€β™‚οΈπŸ§‘πŸ»β€πŸ’»

Installation

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

Example

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`)
})

Options

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.

Dataloader options

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.

Dependencies

  • 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

Dev Dependencies

  • nodemon: Simple monitor script for use during development of a node.js app.

License

MIT

About

Automatic graph generator for Sequelize ORM, it's magic! πŸ§™β€β™‚οΈπŸ§‘πŸ»β€πŸ’»

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published