Skip to content

Commit

Permalink
refactor(@angular/ssr): simplify preload append logic in metadata
Browse files Browse the repository at this point in the history
Replace `filter` and `map` with a `for...of` loop to improve readability in the preload append logic within metadata.

(cherry picked from commit 25dbe7c)
  • Loading branch information
alan-agius4 committed Feb 3, 2025
1 parent e9778db commit de66572
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions packages/angular/ssr/src/routes/ng-routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -281,21 +281,31 @@ function appendPreloadToMetadata(
metadata: ServerConfigRouteTreeNodeMetadata,
includeDynamicImports: boolean,
): void {
if (!entryPointToBrowserMapping) {
const existingPreloads = metadata.preload ?? [];
if (!entryPointToBrowserMapping || existingPreloads.length >= MODULE_PRELOAD_MAX) {
return;
}

const preload = entryPointToBrowserMapping[entryName];
if (!preload?.length) {
return;
}

// Merge existing preloads with new ones, ensuring uniqueness and limiting the total to the maximum allowed.
const combinedPreloads: Set<string> = new Set(existingPreloads);
for (const { dynamicImport, path } of preload) {
if (dynamicImport && !includeDynamicImports) {
continue;
}

combinedPreloads.add(path);

if (preload?.length) {
// Merge existing preloads with new ones, ensuring uniqueness and limiting the total to the maximum allowed.
const preloadPaths =
preload
.filter(({ dynamicImport }) => includeDynamicImports || !dynamicImport)
.map(({ path }) => path) ?? [];
const combinedPreloads = [...(metadata.preload ?? []), ...preloadPaths];
metadata.preload = Array.from(new Set(combinedPreloads)).slice(0, MODULE_PRELOAD_MAX);
if (combinedPreloads.size === MODULE_PRELOAD_MAX) {
break;
}
}

metadata.preload = Array.from(combinedPreloads);
}

/**
Expand Down

0 comments on commit de66572

Please sign in to comment.