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.