relay-tools / react-relay-network-modern-ssr

SSR middleware for react-relay-network-modern
https://github.com/relay-tools/react-relay-network-modern-ssr
MIT License
67 stars 10 forks source link

Cache is null, even with data available on window #19

Closed olso closed 4 years ago

olso commented 4 years ago
const store = new Store(new RecordSource());

const environment = new Environment({
    // @ts-ignore FIXME: idk whats the issue, check for updates
    network,
    store,
  });
const network = new RelayNetworkLayer([
    relaySSRMiddleware.getMiddleware({
      // Will preserve cache rather than purge after mount. Client only
      lookup: false,
    }),
export function createEnvironment() {
  const relaySSRMiddleware = isServer
    ? new RelayServerSSR()
    : new RelayClientSSR((window as MyWindow).__RELAY_DATA__);

  if (isBrowser) {
    console.log("window.__RELAY_DATA__", (window as MyWindow).__RELAY_DATA__);
    console.log(relaySSRMiddleware);
  }

result

Screenshot 2019-11-04 at 19 33 31

I don't really understand whats going on, but, I'm going into debugger mode now

olso commented 4 years ago

Nevermind, I was doing some unnecessary extraction...

export const collectRelayData = async (environment: Environment): Promise<{} | null> => {
  // @ts-ignore
  const { relaySSRMiddleware } = environment;
  const relayCache = await relaySSRMiddleware.getCache();
  const relayData =
    relayCache && relayCache[0] && relayCache[0][1] && relayCache[0][1].data
      ? relayCache[0][1].data
      : null;

  return relayCache; // correct
  // return relayData; // wrong
};
olso commented 4 years ago

Thanks for this project btw!