Nauseating Pumpkin Mush

    @rxdi/graphql-pubsub
    TypeScript icon, indicating that this package has built-in type declarations

    0.7.153 • Public • Published

    @rxdi Graphql-Pub-Sub Module

    More information about Hapi server can be found here Hapi
    For questions/issues you can write ticket here
    This module is intended to be used with rxdi

    Installation and basic examples:

    To install this Gapi module, run:
    $ npm install @rxdi/graphql-pubsub --save

    Consuming @rxdi/graphql-pubsub

    Import inside AppModule or CoreModule
    import { Module } from "@rxdi/core";
    import { HapiModule } from "@rxdi/hapi";
    import { GraphQLPubSubModule } from "@rxdi/graphql-pubsub";
    
    @Module({
      imports: [GraphQLPubSubModule.forRoot()],
    })
    export class CoreModule {}

    Correct usage with @rxdi/graphql

    import { Module } from "@rxdi/core";
    import { HapiModule } from "@rxdi/hapi";
    import { GraphQLModule } from "@rxdi/graphql";
    import { GraphQLPubSubModule } from "@rxdi/graphql-pubsub";
    
    @Module({
      imports: [
        HapiModule.forRoot({
          hapi: {
            port: 9000,
          },
        }),
        GraphQLModule.forRoot({
          path: "/graphql",
          openBrowser: false,
          writeEffects: false,
          graphiQlPath: "/graphiql",
          graphiqlOptions: {
            endpointURL: "/graphql",
            subscriptionsEndpoint: `${
              process.env.GRAPHIQL_WS_SSH ? "wss" : "ws"
            }://${process.env.GRAPHIQL_WS_PATH || "localhost"}${
              process.env.DEPLOY_PLATFORM === "heroku"
                ? ""
                : `:${process.env.API_PORT || process.env.PORT}`
            }/subscriptions`,
            websocketConnectionParams: {
              token: process.env.GRAPHIQL_TOKEN,
            },
          },
          graphqlOptions: {
            schema: null,
          },
        }),
        GraphQLPubSubModule.forRoot(),
      ],
    })
    export class CoreModule {}

    Options for pubsub server can be defined like so

    GraphQLPubSubModule.forRoot({
      remotePubsub: false,
      activateRabbitMQ: false,
      host: "182.10.0.5",
      port: 5672,
      // authentication: AuthService as never,
      subscriptionServerOptions: {
        perMessageDeflate: {
          zlibDeflateOptions: {
            // See zlib defaults.
            chunkSize: 1024,
            memLevel: 7,
            level: 3,
          },
          zlibInflateOptions: {
            chunkSize: 10 * 1024,
          },
          // Other options settable:
          clientNoContextTakeover: true, // Defaults to negotiated value.
          serverNoContextTakeover: true, // Defaults to negotiated value.
          serverMaxWindowBits: 10, // Defaults to negotiated value.
          // Below options specified as default values.
          concurrencyLimit: 10, // Limits zlib concurrency for perf.
          threshold: 1024, // Size (in bytes) below which messages
          // should not be compressed.
        },
      },
    });

    TODO: Better documentation...

    Enjoy ! :)

    Install

    npm i @rxdi/graphql-pubsub

    DownloadsWeekly Downloads

    86

    Version

    0.7.153

    License

    MIT

    Unpacked Size

    30.2 kB

    Total Files

    30

    Last publish

    Collaborators

    • gapi
    • rxdi