Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
import { Request, Response } from '../../typings'
import {
  ReactRouterContext,
  WebClientExports,
  ScopedClient,
  InMemoryCache,
  OmniStore as OmniStoreType,
} from '../typings'

export class ServerSideRenderContext implements WebClientExports {
  req: Request
  res: Response
  nonce: string
  /**
   * Create a context for <StaticRouter>,
   * which will allow us to query for the results of the render.
   */
  reactRouterContext: ReactRouterContext = {}

  client: ScopedClient
  serializableExtractedApolloState: InMemoryCache

  App: React.Component
  appView: JSX.Element
  htmlView: string

  OmniStore: OmniStoreType
  store: OmniStoreType

  // freeze?
  static instance = new ServerSideRenderContext()
  reset() {
    const instance = ServerSideRenderContext.instance
    instance.req = undefined
    instance.res = undefined
    instance.App = undefined
    instance.nonce = undefined
    instance.reactRouterContext = {}
    instance.client = undefined
    instance.appView = undefined
    instance.store = undefined
    instance.serializableExtractedApolloState = undefined
  }
}