Registry / web-framework / react-relay-network-modern-ssr

react-relay-network-modern-ssr

JSON →
library1.4.0jsnpmunverified

Server-side rendering middleware for the react-relay-network-modern package, enabling data fetching and cache management for Relay Modern during SSR. Current stable version is 1.4.0 (released 2020-03-02), with infrequent releases. It provides a RelayServerSSR class that supports three modes: default fetch-based, direct schema injection with graphql-js, and asynchronous context preparation. Key differentiator: it requires two-pass rendering to populate the Relay store before final HTML output and ships TypeScript definitions. It is unmaintained since 2020 and relies on peer dependencies graphql, react-relay, and react-relay-network-modern.

npm install react-relay-network-modern-ssr
INSTALL
IMPORT
SIG · REACT-RELAY-NETWOR
R
react-relay-network-modern-ssr
web-frameworkjavascriptv1.4.0
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

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

RelayServerSSR
import RelayServerSSR from 'react-relay-network-modern-ssr/lib/server'
import { RelayServerSSR } from 'react-relay-network-modern-ssr'
Default export from lib/server — named import does not work. Also available via require: const RelayServerSSR = require('react-relay-network-modern-ssr/lib/server').default
RelayClientSSR
import RelayClientSSR from 'react-relay-network-modern-ssr/lib/client'
import { RelayClientSSR } from 'react-relay-network-modern-ssr/lib/client'
Default export from lib/client — named import does not work. For client-side hydration.
SSRCacheMiddleware
import SSRCacheMiddleware from 'react-relay-network-modern-ssr/lib/client'
import { SSRCacheMiddleware } from 'react-relay-network-modern-ssr'
SSRCacheMiddleware is an alias for RelayClientSSR; use default import from lib/client.

Complete Express SSR setup with RelayServerSSR – two-pass rendering, schema injection, cache retrieval, and HTML serialization.

import express from 'express'; import ReactDOMServer from 'react-dom/server'; import { RelayNetworkLayer } from 'react-relay-network-modern'; import RelayServerSSR from 'react-relay-network-modern-ssr/lib/server'; import serialize from 'serialize-javascript'; import { Environment, Network, RecordSource, Store } from 'relay-runtime'; import schema from './schema'; const app = express(); app.get('/*', async (req, res, next) => { const relayServerSSR = new RelayServerSSR(); const network = new RelayNetworkLayer([ relayServerSSR.getMiddleware({ schema, contextValue: {} }) ]); const source = new RecordSource(); const store = new Store(source); const relayEnvironment = new Environment({ network, store }); // First render to kick off data fetching ReactDOMServer.renderToString(<App relayEnvironment={relayEnvironment} />); // Wait for all queries to complete const relayData = await relayServerSSR.getCache(); // Second render with primed store const appHtml = ReactDOMServer.renderToString( <App relayEnvironment={new Environment({ network: Network.create(() => relayData[0][1]), store })} /> ); res.status(200).send(` <html> <body> <div id="react-root">${appHtml}</div> <script>window.__RELAY_BOOTSTRAP_DATA__ = ${serialize(relayData)};</script> <script src="/assets/bundle.js"></script> </body> </html> `); }); app.listen(3000);
Debug
Known issues
deprecatedRemoved .mjs support in v1.3.0 – ES modules are no longer provided.
fix
Use CommonJS require() or transpile with bundler (e.g., Webpack, Rollup).
affects: >=1.3.0
gotchaMust call relayServerSSR.getCache() after initial render to collect all query payloads.
fix
Always call await relayServerSSR.getCache() before second render.
affects: >=1.0.0
gotchaIf using middleware without schema argument, ensure fetch is available (Node 18+) or polyfill.
fix
Provide a schema object to getMiddleware() or install a fetch polyfill like node-fetch.
affects: >=1.0.0
breakingChanged peer dependency from 'relay-runtime' to 'react-relay' in v1.2.1 – projects using relay-runtime directly may break.
fix
Ensure react-relay (not relay-runtime) is listed in peerDependencies.
affects: >=1.2.1
Errors
Common errors & fixes
Cannot find module 'relay-runtime'
Missing peer dependency 'relay-runtime' (or 'react-relay' for older versions).
fix
Install react-relay: npm install react-relay
TypeError: relayServerSSR.getMiddleware is not a function
Incorrect import path – using main export instead of /lib/server.
fix
Use import RelayServerSSR from 'react-relay-network-modern-ssr/lib/server'
Module not found: Can't resolve 'graphql'
Missing peer dependency 'graphql' when using schema option.
fix
Install graphql: npm install graphql
Upgrade
Version history
1.4.0latest on npm
Audit
Dependencies
graphqlrequiredRequired peer dependency for schema execution in SSR middleware
react-relayrequiredRequired peer dependency for Relay Environment and components
react-relay-network-modernrequiredRequired peer dependency for network layer middleware integration
Agent activity
4 hits · last 30 days
node
4
Resources
react-relay-network-modern-ssr — npm install react-relay-network-modern-ssr · libregistry