rsnext/examples/with-react-relay-network-modern/lib/createEnvironment/client.js

37 lines
836 B
JavaScript
Raw Normal View History

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