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. 
- 
enableSSRClientSideLogging (boolean): enables SSR error logging from puppeteer in the browser console and displays broken components along with their errors. Controlled via the enable-ssr-loggingandmode=ssrURL parameters:- ?enable-ssr-logging=true&mode=ssr→ Enables logging
- ?enable-ssr-logging=false&mode=ssr→ Disables logging
 Defaults to truein development mode.
 
- 
- 
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.