1.0.0-alpha.1.3 • Published 5 years ago

@midgar/apollo-server v1.0.0-alpha.1.3

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

Build Status Coverage

@midgar/apollo-server

PLugin Midgar pour ajouter un service Apollo serveur avec loader de modules graphql et injéction de services.

Installation

$ npm i @midgar/apollo-server --save

Si tout s'est bien passé, un message de confirmation s'affiche:

#midgar-cli
@midgar/apollo-server added to plugins.js !

Fonctionnement

Ajoute un dossier de plugin midgar-graphql: ./graphql/ pour les modules graphl.

module grapql

Un module graphql est un fichier javacript exportant les typeDefs et les resolvers graphql.

Exemple d'un module graphl:

import { gql } from 'apollo-server-express'

// Type defs graphql
const typeDefs = gql`
  type User {
    id: ID!
    email: String!
  }

  extend type Query {
    addUser(email: String): User
    getUsers: [User]
  }
`

export default {
  // Services à incjecter
  dependencies: ['mid:user']
  graphql: (mid, userService) => {
    return {
      typeDefs,
      resolvers:{
        User: {
        ...
        }
        Query: {
          createUser: async (parent, args, ctx, info) => {
            await userService.create(args.email, args.parssword)
          },
          getUsers: (parent, args, ctx, info) => {
            ...
          },
        }
      }
    }
  }
}

Vous pouvez séparrer le fichier si besoin:

import typeDefs from './user.typedefs'
import resolvers from './user.resolvers'

export default {
  dependencies: ['mid:user']
  graphql: (...args) => {
    return {
      typeDefs,
      resolvers: () => resolvers(...args)
    }
  }
}

Les fichiers .typedefs.js et .resolvers.js ne sont pas importé lors de l'import des modules graphql.