mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
21d5aebd53
In this example, we can: - `QueryRenderer` SSR - caching the data - use the feature of `react-relay-network-modern` which is the powerful tool for `relay-modern` I copy the example `with-relay-modern`, but I just modified the code. Some detail are not modified. If you think this example is needed, I will fix those. Otherwise, close this **PR** to let me know this example is not needed.
37 lines
836 B
JavaScript
37 lines
836 B
JavaScript
import {
|
|
RelayNetworkLayer,
|
|
cacheMiddleware,
|
|
urlMiddleware
|
|
} from 'react-relay-network-modern/node8'
|
|
import RelaySSR from 'react-relay-network-modern-ssr/node8/client'
|
|
import { Environment, RecordSource, Store } from 'relay-runtime'
|
|
|
|
const source = new RecordSource()
|
|
const store = new Store(source)
|
|
|
|
let storeEnvironment = null
|
|
|
|
export default {
|
|
createEnvironment: relayData => {
|
|
if (storeEnvironment) return storeEnvironment
|
|
|
|
storeEnvironment = new Environment({
|
|
store,
|
|
network: new RelayNetworkLayer([
|
|
cacheMiddleware({
|
|
size: 100,
|
|
ttl: 60 * 1000
|
|
}),
|
|
new RelaySSR(relayData).getMiddleware({
|
|
lookup: false
|
|
}),
|
|
urlMiddleware({
|
|
url: req => process.env.RELAY_ENDPOINT
|
|
})
|
|
])
|
|
})
|
|
|
|
return storeEnvironment
|
|
}
|
|
}
|