Edit documentation Edit document
SSR/SSG

SSR.js

Overview

This document describes the SSR class, which is responsible for rendering and caching server-side rendered (SSR) pages using Puppeteer. The class manages the rendering process, including logging, bundling, and caching of HTML and JSON data.

Content

Methods

generate

  • Purpose: Renders an SSR page using Puppeteer, processes the output, and caches the result.

  • Parameters:

    • root (string): Root directory of the website.
    • website (string): Website identifier for caching and resource management.
    • route (object): Contains route-specific information like path and query parameters.
    • chapters (object): Site-specific chapters data.
    • auth_key (string): Authorization key for accessing gudhub resources.
    • buildFolder (string): Path to the website folder containing built files.
    • disableImagesRegeneration (boolean): If true, prevents regeneration of images.
    • preview (boolean): Indicates whether the rendering is for preview purposes.
    • disableBundling (boolean): If true, skips bundling of components.
    • config (object): Configuration data for SSR.
    • gudhubDBSettingsConfig (object): configurations of gudhub instance used to get data.
    • clientSortedAndFilteredQueryParams (string, optional): Pre-sorted query parameters to pass them in puppeteer.
  • Returns: The HTML content of the rendered page. '404' if the page is not found. Error object if SSR fails.

  • Behavior: Launches a Puppeteer page and sets up logging. Injects client configuration and language-specific data. Loads the page and processes the resulting HTML and assets. Bundles components if not disabled. Caches HTML and JSON data unless in preview mode.

cacheHTML

  • Purpose: Caches the rendered HTML content of an SSR page.

  • Parameters:

    • content (string): The HTML content to be cached.
    • website (string): Website identifier for caching.
    • route (object): Contains route object.
    • formattedQueryString (string, optional): if page needs to be cached by queryParams, pass formatted (filtered by website queryParams whitelist and sort by alphabet) query string to append to the cache path.
  • Returns: true upon successful caching.

  • Behavior: Constructs the cache path using the route and query parameters. Creates directories if they do not exist. Writes the HTML content to an index.html file in the cache directory.

cacheJsonData

  • Purpose: Caches JSON data associated with an SSR page.

  • Parameters:

    • jsonData (object): The JSON data to be cached.
    • website (string): Website identifier for caching.
    • route (object): Contains route-specific information like path and query parameters.
  • Returns: true upon successful caching, false otherwise.

  • Behavior: Constructs the cache path using the route and query parameters. Creates directories if they do not exist. Writes the JSON data to a cachedJsonData.json file in the cache directory.