0.0.14 • Published 3 years ago

magic-graphql v0.0.14

Weekly downloads
3
License
MIT
Repository
github
Last release
3 years ago

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 KeyTypeDefaultDescription
modelDirPathString / Object../modelsPath where the models folder is located.
customsDirPathStringnullFolder for custom queries and mutations.
graphqlEndpintString/graphqlGraphQL endpoint.
subscriptionsBooleanfalseSet to true to enable GraphQL subscriptions, this requires an http server.
httpServerObjectnullHttpServer it is required to be able to use GraphQL subscriptions.
dataloaderBooleantrueSet to false to disable dataloader.
dataloaderOptionsObject{ ... }Dataloader options.
contextObject{}Context object.

Dataloader options

Option KeyTypeDefaultDescription
batchBooleantrueSet to false to disable batching.
maxNumber500Limits the number of items that get passed in to the batch. May be set to 1 to disable batching.
cacheBooleantrueSet 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