From 830477f54c9cf7daad0b4e0015522801ef886bf3 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sat, 11 Apr 2026 20:05:37 +0000 Subject: [PATCH] perf: extract cleanly regex in map callbacks Extracted inline regular expression literal `/(\r\n|\n|\r|\t)/gm` inside `.map` callbacks in `src/helpers/movie.helper.ts` to a module-level constant to prevent redundant compilation and object allocation on each loop iteration. Co-authored-by: bartholomej <5861310+bartholomej@users.noreply.github.com> --- src/helpers/movie.helper.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/helpers/movie.helper.ts b/src/helpers/movie.helper.ts index 1cc2f8da..d1b1f249 100644 --- a/src/helpers/movie.helper.ts +++ b/src/helpers/movie.helper.ts @@ -79,6 +79,8 @@ const CREATOR_LABELS: Record< } }; +const CLEAN_TEXT_REGEX = /(\r\n|\n|\r|\t)/gm; + /** * Maps language-specific movie creator group labels. * @param language - The language code (e.g., 'en', 'cs') @@ -264,7 +266,7 @@ export const getMovieRandomPhoto = (el: HTMLElement | null): string => { export const getMovieTrivia = (el: HTMLElement | null): string[] => { const triviaNodes = el.querySelectorAll('.article-trivia ul li'); if (triviaNodes?.length) { - return triviaNodes.map((node) => node.textContent.trim().replace(/(\r\n|\n|\r|\t)/gm, '')); + return triviaNodes.map((node) => node.textContent.trim().replace(CLEAN_TEXT_REGEX, '')); } else { return null; } @@ -273,7 +275,7 @@ export const getMovieTrivia = (el: HTMLElement | null): string[] => { export const getMovieDescriptions = (el: HTMLElement): string[] => { return el .querySelectorAll('.body--plots .plot-full p, .body--plots .plots .plots-item p') - .map((movie) => movie.textContent?.trim().replace(/(\r\n|\n|\r|\t)/gm, '')); + .map((movie) => movie.textContent?.trim().replace(CLEAN_TEXT_REGEX, '')); }; const parseMoviePeople = (el: HTMLElement): CSFDMovieCreator[] => {