Git Product home page Git Product logo

graphql-sse's Introduction

@graphile-contrib/graphql-sse

PostGraphile support for GraphQL over Server-Sent Events (SSE) powered by graphql-sse.

  • Doesn't mess with the schema update stream on eventSourceRoute, both can exist on the same route
  • PUT and DELETE methods are allowed through CORS on the eventSourceRoute in order to support the "single connection mode"
  • The client can use the X-GraphQL-Event-Stream header for SSE endpoint discovery

Getting started

Install

npm install --save graphql-sse @graphile-contrib/graphql-sse

or

yarn add graphql-sse @graphile-contrib/graphql-sse

Integrate the plugin

PostGraphile CLI

postgraphile \
  --plugins @graphile/graphql-sse \
  ...

PostGraphile library

import { postgraphile, makePluginHook } from 'postgraphile';
import GraphQLSSEPlugin from '@graphile-contrib/graphql-sse';

const postGraphileMiddleware = postgraphile(databaseUrl, 'app_public', {
  pluginHook: makePluginHook([GraphQLSSEPlugin]),
  eventStreamRoute: '/graphql/stream', // default
});

Use the client

Connect to the specified PostGraphileOptions.eventStreamRoute.

For further usage inspiration, please consult the graphql-sse readme.

graphql-sse's People

Contributors

benjie avatar enisdenjo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

danplischke

graphql-sse's Issues

Implement usage of the dynamic `"postgraphile:validationRules"` hook

graphql-sse/src/index.ts

Lines 104 to 120 in 1879046

// TODO: implement if necessary
// // You are strongly encouraged to use
// // `postgraphile:validationRules:static` if possible - you should
// // only use this one if you need access to variables.
// const moreValidationRules = pluginHook('postgraphile:validationRules', [], {
// options,
// req,
// res,
// variables: variableValues,
// operationName: operationName,
// });
// if (moreValidationRules.length) {
// const moreValidationErrors = validate(schema, document, moreValidationRules);
// if (moreValidationErrors.length) {
// return moreValidationErrors;
// }
// }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.