From 4c9638150ab994834ec6e732dc0045fad5166127 Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Wed, 7 May 2025 15:25:08 +0200 Subject: [PATCH] [DURACOM-344] adapt patterns and example file, fix possible error from YAML --- config/config.example.yml | 22 +++++++++++++--------- server.ts | 11 +++++++---- src/config/ssr-config.interface.ts | 4 ++-- src/environments/environment.production.ts | 8 ++++++-- src/environments/environment.test.ts | 8 ++++++-- src/environments/environment.ts | 8 ++++++-- 6 files changed, 40 insertions(+), 21 deletions(-) diff --git a/config/config.example.yml b/config/config.example.yml index c6ad21ffb8..f90d821a35 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -23,17 +23,21 @@ ssr: # Determining which styles are critical is a relatively expensive operation; this option is # disabled (false) by default to boost server performance at the expense of loading smoothness. inlineCriticalCss: false - # Regexes to be run against the path of the page to check if SSR is allowed. + # Patterns to be run as regexes against the path of the page to check if SSR is allowed. # If the path match any of the regexes it will be served directly in CSR. # By default, excludes community and collection browse, global browse, global search, community list, and statistics. - excludePathRegexes: [ - /^\/communities\/[ 0-9a-f ]{ 8 }-[ 0-9a-f ]{ 4 }-[ 0-9a-f ]{ 4 }-[ 0-9a-f ]{ 4 }-[ 0-9a-f ]{ 12 }\/browse(\/.*)?$/i, - /^\/collections\/[ 0-9a-f ]{ 8 }-[ 0-9a-f ]{ 4 }-[ 0-9a-f ]{ 4 }-[ 0-9a-f ]{ 4 }-[ 0-9a-f ]{ 12 }\/browse(\/.*)?$/i, - /^\/browse\//, - /^\/search$/, - /^\/community-list$/, - /^\/statistics$/, - ] + excludePathPatterns: + - /^\/communities\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i + - /^\/collections\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i + - /^\/browse\// + - /^\/search$/ + - /^\/community-list$/ + - /^\/statistics\// + - /^\/admin$/ + - /^\/processes$/ + - /^\/notifications$/ + - /^\/health$/ + # Whether to enable rendering of Search component on SSR. # If set to true the component will be included in the HTML returned from the server side rendering. # If set to false the component will not be included in the HTML returned from the server side rendering. diff --git a/server.ts b/server.ts index afde39178a..7cf475c239 100644 --- a/server.ts +++ b/server.ts @@ -221,7 +221,7 @@ export function app() { * The callback function to serve server side angular */ function ngApp(req, res, next) { - if (environment.ssr.enabled && req.method === 'GET' && (req.path === '/' || !isExcludedFromSsr(req.path, environment.ssr.excludePathRegexes))) { + if (environment.ssr.enabled && req.method === 'GET' && (req.path === '/' || !isExcludedFromSsr(req.path, environment.ssr.excludePathPatterns))) { // Render the page to user via SSR (server side rendering) serverSideRender(req, res, next); } else { @@ -631,10 +631,13 @@ function start() { * Check if SSR should be skipped for path * * @param path - * @param excludePathRegexes + * @param excludePathPattern */ -function isExcludedFromSsr(path: string, excludePathRegexes: RegExp[]): boolean { - return excludePathRegexes.some((regex) => regex.test(path)); +function isExcludedFromSsr(path: string, excludePathPattern: (string | RegExp)[]): boolean { + return excludePathPattern.some((pattern) => { + const regex = new RegExp(pattern); + return regex.test(path) + }); } /* diff --git a/src/config/ssr-config.interface.ts b/src/config/ssr-config.interface.ts index 13b216befc..ee39512d44 100644 --- a/src/config/ssr-config.interface.ts +++ b/src/config/ssr-config.interface.ts @@ -39,9 +39,9 @@ export interface SSRConfig extends Config { replaceRestUrl: boolean; /** - * Regexes to match url's path and check if SSR is disabled for it. + * Patterns to be used as regexes to match url's path and check if SSR is disabled for it. */ - excludePathRegexes: RegExp[]; + excludePathPatterns: (string | RegExp)[]; /** * Whether to enable rendering of search component on SSR diff --git a/src/environments/environment.production.ts b/src/environments/environment.production.ts index 8a96a32b19..238c45c21e 100644 --- a/src/environments/environment.production.ts +++ b/src/environments/environment.production.ts @@ -10,13 +10,17 @@ export const environment: Partial = { inlineCriticalCss: false, transferState: true, replaceRestUrl: true, - excludePathRegexes: [ + excludePathPatterns: [ /^\/communities\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i, /^\/collections\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i, /^\/browse\//, /^\/search$/, /^\/community-list$/, - /^\/statistics$/, + /^\/statistics\//, + /^\/admin$/, + /^\/processes$/, + /^\/notifications$/, + /^\/health$/, ], enableSearchComponent: false, enableBrowseComponent: false, diff --git a/src/environments/environment.test.ts b/src/environments/environment.test.ts index 20585e17b6..44f0760123 100644 --- a/src/environments/environment.test.ts +++ b/src/environments/environment.test.ts @@ -14,13 +14,17 @@ export const environment: BuildConfig = { inlineCriticalCss: false, transferState: true, replaceRestUrl: false, - excludePathRegexes: [ + excludePathPatterns: [ /^\/communities\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i, /^\/collections\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i, /^\/browse\//, /^\/search$/, /^\/community-list$/, - /^\/statistics$/, + /^\/statistics\//, + /^\/admin$/, + /^\/processes$/, + /^\/notifications$/, + /^\/health$/, ], enableSearchComponent: false, enableBrowseComponent: false, diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 34d820aec9..cd773664fc 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -15,13 +15,17 @@ export const environment: Partial = { inlineCriticalCss: false, transferState: true, replaceRestUrl: false, - excludePathRegexes: [ + excludePathPatterns: [ /^\/communities\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i, /^\/collections\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i, /^\/browse\//, /^\/search$/, /^\/community-list$/, - /^\/statistics$/, + /^\/statistics\//, + /^\/admin$/, + /^\/processes$/, + /^\/notifications$/, + /^\/health$/, ], enableSearchComponent: false, enableBrowseComponent: false,