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.
ShareDBRedisPubSub
✓ const ShareDBRedisPubSub = require('sharedb-redis-pubsub');
const pubsub = ShareDBRedisPubSub({client: redisClient});
✗ import ShareDBRedisPubSub from 'sharedb-redis-pubsub'; // ESM import may not work correctly; package is CommonJS
Package exports a factory function that expects an options object with a 'client' property. use require() for CommonJS; ESM import may not work out of the box.
default export
✓ const createPubSub = require('sharedb-redis-pubsub');
const pubsub = createPubSub({client: redisClient});
✗ const PubSub = require('sharedb-redis-pubsub').PubSub; // No named export 'PubSub'
The package exports a single factory function as the default export. There is no class or named export.
types
✓ // No TypeScript types are shipped; use @types/sharedb-redis-pubsub if available or declare module
✗ import { PubSubOptions } from 'sharedb-redis-pubsub'; // Types not provided
This package does not include TypeScript declarations. Consider using a declaration file or wrapping with 'any'.
Creates a Redis pub/sub adapter for ShareDB, connects to Redis, and submits an operation.
const ShareDB = require('sharedb');
const redis = require('redis');
const redisPubsub = require('sharedb-redis-pubsub');
// Create Redis client (replace with your Redis connection details)
const redisClient = redis.createClient({url: 'redis://localhost:6379'});
await redisClient.connect();
// Create pub/sub adapter
const pubsub = redisPubsub({client: redisClient});
// Create ShareDB backend with Redis pub/sub
const backend = new ShareDB({db: null, pubsub: pubsub}); // Replace db with actual database adapter
// Example: agent connection
const connection = backend.connect();
const doc = connection.get('examples', '1');
doc.fetch(function(err) {
if (err) throw err;
doc.submitOp([{p: ['name'], od: '', oi: 'Hello World'}], function(err) {
if (err) throw err;
console.log('Operation submitted');
});
});
Errors
Common errors & fixes
Error: Redis connection in pubsub adapter is required
The adapter was instantiated without a valid Redis client or the client was not connected.
fixPass a connected Redis client object: {client: myConnectedRedisClient} TypeError: redisPubsub is not a function
Incorrect import style: trying to use the module as a class or named export.
fixUse: const redisPubsub = require('sharedb-redis-pubsub'); then call as redisPubsub({client: ...}). Error: Cannot find module 'sharedb-redis-pubsub'
Package not installed or missing from node_modules.
fixRun: npm install sharedb-redis-pubsub
Audit
Dependencies
sharedbrequiredPeer dependency: this adapter is designed to be used with ShareDB backend for pub/sub functionality
redisrequiredPeer dependency: requires an existing Redis client instance (e.g., from 'redis' or 'ioredis') to connect to Redis