Skip to content

Commit de66572

Browse files
committed
refactor(@angular/ssr): simplify preload append logic in metadata
Replace `filter` and `map` with a `for...of` loop to improve readability in the preload append logic within metadata. (cherry picked from commit 25dbe7c)
1 parent e9778db commit de66572

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

packages/angular/ssr/src/routes/ng-routes.ts

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -281,21 +281,31 @@ function appendPreloadToMetadata(
281281
metadata: ServerConfigRouteTreeNodeMetadata,
282282
includeDynamicImports: boolean,
283283
): void {
284-
if (!entryPointToBrowserMapping) {
284+
const existingPreloads = metadata.preload ?? [];
285+
if (!entryPointToBrowserMapping || existingPreloads.length >= MODULE_PRELOAD_MAX) {
285286
return;
286287
}
287288

288289
const preload = entryPointToBrowserMapping[entryName];
290+
if (!preload?.length) {
291+
return;
292+
}
293+
294+
// Merge existing preloads with new ones, ensuring uniqueness and limiting the total to the maximum allowed.
295+
const combinedPreloads: Set<string> = new Set(existingPreloads);
296+
for (const { dynamicImport, path } of preload) {
297+
if (dynamicImport && !includeDynamicImports) {
298+
continue;
299+
}
300+
301+
combinedPreloads.add(path);
289302

290-
if (preload?.length) {
291-
// Merge existing preloads with new ones, ensuring uniqueness and limiting the total to the maximum allowed.
292-
const preloadPaths =
293-
preload
294-
.filter(({ dynamicImport }) => includeDynamicImports || !dynamicImport)
295-
.map(({ path }) => path) ?? [];
296-
const combinedPreloads = [...(metadata.preload ?? []), ...preloadPaths];
297-
metadata.preload = Array.from(new Set(combinedPreloads)).slice(0, MODULE_PRELOAD_MAX);
303+
if (combinedPreloads.size === MODULE_PRELOAD_MAX) {
304+
break;
305+
}
298306
}
307+
308+
metadata.preload = Array.from(combinedPreloads);
299309
}
300310

301311
/**

0 commit comments

Comments
 (0)