1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/examples/with-react-relay-network-modern/lib/createEnvironment/client.js
Ting-Hsiang Hsu 21d5aebd53 feat(example): add react-relay-network-modern example (#5349)
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.
2018-11-25 15:14:36 +01:00

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
}
}