🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

graphql-postgres-subscriptions

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

graphql-postgres-subscriptions

[![Build Status](https://travis-ci.org/GraphQLCollege/graphql-postgres-subscriptions.svg?branch=master)](https://travis-ci.org/GraphQLCollege/graphql-postgres-subscriptions)

1.0.1
Source
npm
Version published
Weekly downloads
1.8K
78.31%
Maintainers
1
Weekly downloads
 
Created
Source

graphql-postgres-subscriptions

Build Status

A graphql subscriptions implementation using postgres and apollo's graphql-subscriptions.

This package implements the PubSubEngine Interface from the graphql-subscriptions package and also the new AsyncIterator interface. It allows you to connect your subscriptions manger to a postgres based Pub Sub mechanism to support multiple subscription manager instances.

Installation

yarn add graphql-postgres-subscriptions or npm install graphql-postgres-subscriptions --save

Usage

Follow the instructions in graphql-subscriptions.

Replace PubSub with PostgresPubSub:

// Before
import { PubSub } from 'graphql-subscriptions';

export const pubsub = new PubSub();
// After
import { PostgresPubSub } from 'graphql-postgres-subscriptions';

export const pubsub = new PostgresPubSub();

This library uses node-postgres to connect to PostgreSQL. If you want to customize connection options, please refer to their connection docs.

You have three options:

If you don's send any argument to new PostgresPubSub(), we'll create a postgres client with no arguments.

You can also pass node-postgres connection options to PostgresPubSub.

You can instantiate your own client and pass it to PostgresPubSub. Like this:

import { PostgresPubSub } from 'graphql-postgres-subscriptions';
import { Client } from "pg";

const client = new Client();
await client.connect();
const pubsub = new PostgresPubSub({ client });

Important: Don't pass clients from pg's Pool to PostgresPubSub. As node-postgres creator states in this StackOverflow answer, the client needs to be around and not shared so pg can properly handle NOTIFY messages (which this library uses under the hood)

Development

This project has an integration test suite that uses jest to make sure everything works correctly.

We use Docker to spin up a PostgreSQL instance before running the tests. To run them, type the following commands:

  • docker-compose build
  • docker-compose run test

FAQs

Package last updated on 03 Apr 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts