diff --git a/src/helpers/movie.helper.ts b/src/helpers/movie.helper.ts index b908f3fa..7eb31d34 100644 --- a/src/helpers/movie.helper.ts +++ b/src/helpers/movie.helper.ts @@ -28,6 +28,9 @@ import { parseLastIdFromUrl } from './global.helper'; +// Optimization: Extract regex from mapping loops to avoid recompilation overhead +const CLEAN_TEXT_REGEX = /(\r\n|\n|\r|\t)/gm; + const CREATOR_LABELS: Record< string, Record @@ -264,7 +267,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 +276,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[] => {