@yolkai/nestjs-graphql-gateway
TypeScript icon, indicating that this package has built-in type declarations

2.0.9 • Public • Published

NestJs GraphQL Gateway (supports type-graphql)

NestJS GraphQL Apollo Federation extension. You keep using @nestjs/graphql for all other steps

NPM Version License Code Size Top Language Top Language

Why?

This fork was created to provide an instance of this library that removes the temp__ property from the Query fields as it is no longer required. This fork enables the consumer to federate multiple services, without this the temp__ field with collide preventing services from booting.

Installation

$ yarn install nestjs-graphql-gateway

Setup federated service

import { Module } from '@nestjs/common';
import { GraphqlDistributedModule } from 'nestjs-graphql-gateway';

@Module({
  imports: [
    GraphqlDistributedModule.forRoot({
      typePaths: [path.join(process.cwd() + '/apps/service-auth/src', '/**/*.graphql')],
      introspection: true,
      playground: {
        workspaceName: 'GRAPHQL CQRS',
        settings: {
          'editor.theme': 'light',
        },
      },
      context: (ctx) => ctx,
    })
  ]
})
export class AppModule {}


// Code first TypegraphQl

@Module({
  imports: [
    GraphqlDistributedModule.forRoot({
      autoSchemaFile: 'graphs/demo.gql',

      // optional orphaned types
      buildSchemaOptions: {
        orphanedTypes: [Tenant, TenantMember, User],
      },

      context: (ctx) => ctx,
    })
  ]
})
export class AppModule {}

Setup Gateway

import { Module } from '@nestjs/common';
import { GraphqlDistributedGatewayModule } from 'nestjs-graphql-gateway';

@Module({
  imports: [
    GraphqlDistributedGatewayModule.forRoot({
      subscriptions: false,
      path: '/graphql',
      context: context => context,
      serviceList: [
        { name: 'auth', url: 'http://localhost:1000/graphql' },
        { name: 'user', url: 'http://localhost:2000/graphql' },
        // more services
      ],
      buildService({ url }) {
        return new HeadersDatasource({ url });
      },
    }),
  ]
})
export class AppModule {}

License

This project is MIT licensed.

Readme

Keywords

none

Package Sidebar

Install

npm i @yolkai/nestjs-graphql-gateway

Weekly Downloads

0

Version

2.0.9

License

MIT

Unpacked Size

922 kB

Total Files

110

Last publish

Collaborators

  • ramaneekgill