From d2908351680c5201494f9381d93c83fb1f54a310 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 2 Aug 2025 17:07:57 +0200 Subject: [PATCH] Optimize performance --- .../app/endpoints/sitemap/sitemap.service.ts | 52 +++++++++++++------ 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/apps/api/src/app/endpoints/sitemap/sitemap.service.ts b/apps/api/src/app/endpoints/sitemap/sitemap.service.ts index d18fe884a..3774d2274 100644 --- a/apps/api/src/app/endpoints/sitemap/sitemap.service.ts +++ b/apps/api/src/app/endpoints/sitemap/sitemap.service.ts @@ -21,18 +21,42 @@ export class SitemapService { const rootUrl = this.configurationService.get('ROOT_URL'); return SUPPORTED_LANGUAGE_CODES.flatMap((languageCode) => { + const resourcesPath = this.i18nService.getTranslation({ + languageCode, + id: publicRoutes.resources.path.match( + SitemapService.TRANSLATION_TAGGED_MESSAGE_REGEX + ).groups.id + }); + + const personalFinanceToolsPath = this.i18nService.getTranslation({ + languageCode, + id: publicRoutes.resources.subRoutes.personalFinanceTools.path.match( + SitemapService.TRANSLATION_TAGGED_MESSAGE_REGEX + ).groups.id + }); + + const productPath = this.i18nService.getTranslation({ + languageCode, + id: publicRoutes.resources.subRoutes.personalFinanceTools.subRoutes.product.path.match( + SitemapService.TRANSLATION_TAGGED_MESSAGE_REGEX + ).groups.id + }); + return personalFinanceTools.map(({ alias, key }) => { - const route = - publicRoutes.resources.subRoutes.personalFinanceTools.subRoutes - .product; - const params = { - currentDate, - languageCode, + const location = [ rootUrl, - urlPostfix: alias ?? key - }; - - return this.createRouteSitemapUrl({ ...params, route }); + languageCode, + resourcesPath, + personalFinanceToolsPath, + `${productPath}-${alias ?? key}` + ].join('/'); + + return [ + ' ', + ` ${location}`, + ` ${currentDate}T00:00:00+00:00`, + ' ' + ].join('\n'); }); }).join('\n'); } @@ -58,14 +82,12 @@ export class SitemapService { currentDate, languageCode, rootUrl, - route, - urlPostfix + route }: { currentDate: string; languageCode: string; rootUrl: string; route?: PublicRoute; - urlPostfix?: string; }): string { const segments = route?.routerLink.map((link) => { @@ -83,9 +105,7 @@ export class SitemapService { return segment.replace(/^\/+|\/+$/, ''); }) ?? []; - const location = - [rootUrl, languageCode, ...segments].join('/') + - (urlPostfix ? `-${urlPostfix}` : ''); + const location = [rootUrl, languageCode, ...segments].join('/'); return [ ' ',