Registry / messaging / graphql-subscriptions-continued

graphql-subscriptions-continued

JSON →
library3.0.3jsnpmunverified

A community-maintained fork of the original graphql-subscriptions package (v2 branch), updated to version 3.0.3 with modern TypeScript types and async iterator support. This package provides a simple pub/sub mechanism (default EventEmitter-based) to implement GraphQL subscriptions, allowing decoupled communication between mutation resolvers and subscription resolvers. It retains the exact same API as the original, making migration seamless for existing users. Peer dependency on graphql ^15.7.2 || ^16.0.0. The fork exists because the original library was near-abandoned, but this version tracks the release-3.0 branch for compatibility with graphql-code-generator. Alternative to using graphql-subscriptions (original) or other subscription libraries like graphql-ws.

npm install graphql-subscriptions-continued
INSTALL
IMPORT
SIG · GRAPHQL-SUBSCRIPTI
G
graphql-subscriptions-continued
messagingjavascriptv3.0.3
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

PubSub
import { PubSub } from 'graphql-subscriptions-continued';
const { PubSub } = require('graphql-subscriptions-continued');
ESM-only since v3; CJS require still works but not recommended. Use default import if the module exposes default? Actually default export is not provided; must use named import.
withFilter
import { withFilter } from 'graphql-subscriptions-continued';
import withFilter from 'graphql-subscriptions-continued';
withFilter is a named export, not default.
PubSubEngine
import { PubSubEngine } from 'graphql-subscriptions-continued';
import { PubSubEngine } from 'graphql-subscriptions';
Type import for the base class; useful for custom PubSub implementations.

Shows creation of PubSub instance, publishing an event, and subscribing with filter using withFilter.

import { PubSub, withFilter } from 'graphql-subscriptions-continued'; const pubsub = new PubSub(); const TOPIC = 'postAdded'; // In mutation resolver: pubsub.publish(TOPIC, { postAdded: { id: '1', title: 'Hello' } }); // In subscription resolver: const resolvers = { Subscription: { postAdded: { subscribe: withFilter( () => pubsub.asyncIterator(TOPIC), (payload, variables) => { return payload.postAdded.title === variables.titleFilter; } ), }, }, }; export default resolvers;
Debug
Known issues
breakingThis package is a fork; do not install both graphql-subscriptions and graphql-subscriptions-continued in the same project.
fix
Uninstall graphql-subscriptions and use only graphql-subscriptions-continued.
affects: >=3.0.0
gotchaThe default PubSub uses EventEmitter and is not suitable for production beyond single server; use Redis or MQTT-based implementations.
fix
Use external pubsub implementations like graphql-redis-subscriptions or graphql-mqtt-subscriptions.
affects: >=1.0.0
deprecatedThe original graphql-subscriptions v2 is deprecated; this fork is not official Apollo.
fix
Migrate to graphql-subscriptions-continued or use graphql-ws directly.
affects: >=2.0.0
gotchaTypeScript users must include 'es2018.asynciterable' in tsconfig.lib to use async iterators.
fix
Add 'es2018.asynciterable' to 'lib' in tsconfig.json.
affects: >=3.0.0
Errors
Common errors & fixes
Cannot find module 'graphql-subscriptions-continued' or its corresponding type declarations.
Package not installed or TypeScript cannot resolve types (missing @types? but the package ships types).
fix
Run npm install graphql-subscriptions-continued graphql and ensure tsconfig.json includes 'es2018.asynciterable' in lib.
TypeError: pubsub.asyncIterator is not a function
Using an older version that does not return AsyncIterator, or incorrect import (default vs named).
fix
Upgrade to v3 and use named import: import { PubSub } from 'graphql-subscriptions-continued';
Error: You must provide a resolver for subscription field.
Subscription resolver not properly defined with subscribe method returning AsyncIterator.
fix
Define resolver as { subscribe: () => pubsub.asyncIterator(TOPIC) } instead of a plain function.
GraphQLError: Subscription field must return Async Iterable.
subscribe function returned undefined or non-async iterable.
fix
Ensure subscribe function returns pubsub.asyncIterator(TOPIC).
Upgrade
Version history
3.0.3latest on npm
Audit
Dependencies
graphqlrequiredpeer dependency required for GraphQL type system and schema definitions
Agent activity
20 hits · last 30 days
node
18
OpenAI (training)
1
Resources
graphql-subscriptions-continued — npm install graphql-subscriptions-continued · libregistry