Skip to content

Commit 00d9d60

Browse files
Revert "type(fix)"
This reverts commit dd80e0f.
1 parent 7e770b0 commit 00d9d60

File tree

5 files changed

+67
-69
lines changed

5 files changed

+67
-69
lines changed

packages/angular/build/src/builders/application/chunk-optimizer.ts

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -285,21 +285,6 @@ export async function optimizeChunks(
285285
}
286286
original.metafile = newMetafile;
287287

288-
// Update the isolated browser metafile to reflect the optimized output.
289-
// Server outputs are excluded since chunk optimization only affects browser bundles.
290-
const serverOutputPaths = new Set(Object.keys(original.serverMetafile?.outputs ?? {}));
291-
const browserOutputs: Metafile['outputs'] = {};
292-
const browserInputs: Metafile['inputs'] = {};
293-
for (const [path, output] of Object.entries(newMetafile.outputs)) {
294-
if (!serverOutputPaths.has(path)) {
295-
browserOutputs[path] = output;
296-
for (const inputPath of Object.keys(output.inputs)) {
297-
browserInputs[inputPath] = newMetafile.inputs[inputPath];
298-
}
299-
}
300-
}
301-
original.browserMetafile = { inputs: browserInputs, outputs: browserOutputs };
302-
303288
// Remove used chunks and associated sourcemaps from the original result
304289
original.outputFiles = original.outputFiles.filter(
305290
(file) =>

packages/angular/build/src/builders/application/execute-build.ts

Lines changed: 15 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,20 @@
77
*/
88

99
import { BuilderContext } from '@angular-devkit/architect';
10-
import type { Metafile } from 'esbuild';
1110
import { createAngularCompilation } from '../../tools/angular/compilation';
1211
import { SourceFileCache } from '../../tools/esbuild/angular/source-file-cache';
1312
import { generateBudgetStats } from '../../tools/esbuild/budget-stats';
1413
import {
1514
BuildOutputFileType,
1615
BundleContextResult,
1716
BundlerContext,
18-
InitialFileRecord,
1917
} from '../../tools/esbuild/bundler-context';
2018
import { ExecutionResult, RebuildState } from '../../tools/esbuild/bundler-execution-result';
2119
import { checkCommonJSModules } from '../../tools/esbuild/commonjs-checker';
2220
import { extractLicenses } from '../../tools/esbuild/license-extractor';
2321
import { profileAsync } from '../../tools/esbuild/profiling';
2422
import {
23+
buildMetafileForType,
2524
calculateEstimatedTransferSizes,
2625
logBuildStats,
2726
transformSupportedBrowsersToTargets,
@@ -39,32 +38,6 @@ import { inlineI18n, loadActiveTranslations } from './i18n';
3938
import { NormalizedApplicationBuildOptions } from './options';
4039
import { createComponentStyleBundler, setupBundlerContexts } from './setup-bundling';
4140

42-
function filterMetafileByInitialFiles(
43-
metafile: Metafile,
44-
initialFiles: Map<string, InitialFileRecord>,
45-
): Metafile {
46-
const filteredOutputs: Metafile['outputs'] = {};
47-
const referencedInputs = new Set<string>();
48-
49-
for (const [path, output] of Object.entries(metafile.outputs)) {
50-
if (initialFiles.has(path)) {
51-
filteredOutputs[path] = output;
52-
for (const inputPath of Object.keys(output.inputs)) {
53-
referencedInputs.add(inputPath);
54-
}
55-
}
56-
}
57-
58-
const filteredInputs: Metafile['inputs'] = {};
59-
for (const [inputPath, input] of Object.entries(metafile.inputs)) {
60-
if (referencedInputs.has(inputPath)) {
61-
filteredInputs[inputPath] = input;
62-
}
63-
}
64-
65-
return { inputs: filteredInputs, outputs: filteredOutputs };
66-
}
67-
6841
// eslint-disable-next-line max-lines-per-function
6942
export async function executeBuild(
7043
options: NormalizedApplicationBuildOptions,
@@ -237,7 +210,7 @@ export async function executeBuild(
237210
executionResult.setExternalMetadata(implicitBrowser, implicitServer, [...explicitExternal]);
238211
}
239212

240-
const { metafile, browserMetafile, serverMetafile, initialFiles, outputFiles } = bundlingResult;
213+
const { metafile, initialFiles, outputFiles } = bundlingResult;
241214

242215
executionResult.outputFiles.push(...outputFiles);
243216

@@ -335,23 +308,31 @@ export async function executeBuild(
335308
if (options.stats) {
336309
executionResult.addOutputFile(
337310
'browser-stats.json',
338-
JSON.stringify(browserMetafile, null, 2),
311+
JSON.stringify(buildMetafileForType(metafile, 'browser', false, outputFiles), null, 2),
339312
BuildOutputFileType.Root,
340313
);
341314
executionResult.addOutputFile(
342315
'browser-initial-stats.json',
343-
JSON.stringify(filterMetafileByInitialFiles(browserMetafile, initialFiles), null, 2),
316+
JSON.stringify(
317+
buildMetafileForType(metafile, 'browser', true, outputFiles, initialFiles),
318+
null,
319+
2,
320+
),
344321
BuildOutputFileType.Root,
345322
);
346-
if (ssrOutputEnabled && serverMetafile) {
323+
if (ssrOutputEnabled) {
347324
executionResult.addOutputFile(
348325
'server-stats.json',
349-
JSON.stringify(serverMetafile, null, 2),
326+
JSON.stringify(buildMetafileForType(metafile, 'server', false, outputFiles), null, 2),
350327
BuildOutputFileType.Root,
351328
);
352329
executionResult.addOutputFile(
353330
'server-initial-stats.json',
354-
JSON.stringify(filterMetafileByInitialFiles(serverMetafile, initialFiles), null, 2),
331+
JSON.stringify(
332+
buildMetafileForType(metafile, 'server', true, outputFiles, initialFiles),
333+
null,
334+
2,
335+
),
355336
BuildOutputFileType.Root,
356337
);
357338
}

packages/angular/build/src/tools/esbuild/angular/component-stylesheets.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,6 @@ export class ComponentStylesheetBundler {
278278
contents,
279279
outputFiles,
280280
metafile,
281-
browserMetafile: metafile,
282281
referencedFiles,
283282
externalImports: result.externalImports,
284283
initialFiles: new Map(),

packages/angular/build/src/tools/esbuild/bundler-context.ts

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@ export type BundleContextResult =
2929
errors: undefined;
3030
warnings: Message[];
3131
metafile: Metafile;
32-
browserMetafile: Metafile;
33-
serverMetafile?: Metafile;
3432
outputFiles: BuildOutputFile[];
3533
initialFiles: Map<string, InitialFileRecord>;
3634
externalImports: {
@@ -130,8 +128,6 @@ export class BundlerContext {
130128
let errors: Message[] | undefined;
131129
const warnings: Message[] = [];
132130
const metafile: Metafile = { inputs: {}, outputs: {} };
133-
const browserMetafile: Metafile = { inputs: {}, outputs: {} };
134-
let serverMetafile: Metafile | undefined;
135131
const initialFiles = new Map<string, InitialFileRecord>();
136132
const externalImportsBrowser = new Set<string>();
137133
const externalImportsServer = new Set<string>();
@@ -152,17 +148,6 @@ export class BundlerContext {
152148
Object.assign(metafile.outputs, result.metafile.outputs);
153149
}
154150

155-
// Keep browser and server metafiles isolated for separate stats output
156-
if (result.browserMetafile) {
157-
Object.assign(browserMetafile.inputs, result.browserMetafile.inputs);
158-
Object.assign(browserMetafile.outputs, result.browserMetafile.outputs);
159-
}
160-
if (result.serverMetafile) {
161-
serverMetafile ??= { inputs: {}, outputs: {} };
162-
Object.assign(serverMetafile.inputs, result.serverMetafile.inputs);
163-
Object.assign(serverMetafile.outputs, result.serverMetafile.outputs);
164-
}
165-
166151
result.initialFiles.forEach((value, key) => initialFiles.set(key, value));
167152

168153
outputFiles.push(...result.outputFiles);
@@ -185,8 +170,6 @@ export class BundlerContext {
185170
errors,
186171
warnings,
187172
metafile,
188-
browserMetafile,
189-
serverMetafile,
190173
initialFiles,
191174
outputFiles,
192175
externalImports: {
@@ -432,8 +415,6 @@ export class BundlerContext {
432415
},
433416
externalConfiguration,
434417
errors: undefined,
435-
browserMetafile: isPlatformServer ? { inputs: {}, outputs: {} } : result.metafile,
436-
serverMetafile: isPlatformServer ? result.metafile : undefined,
437418
};
438419
}
439420

packages/angular/build/src/tools/esbuild/utils.ts

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,58 @@ import {
2929
PrerenderedRoutesRecord,
3030
} from './bundler-execution-result';
3131

32+
export function buildMetafileForType(
33+
metafile: Metafile,
34+
type: 'browser' | 'server',
35+
initial: boolean,
36+
outputFiles: BuildOutputFile[],
37+
initialFiles?: Map<string, InitialFileRecord>,
38+
): Metafile {
39+
const isServer = type === 'server';
40+
41+
const outputPathsForType = new Set(
42+
outputFiles
43+
.filter(({ type: fileType }) => {
44+
const isServerFile =
45+
fileType === BuildOutputFileType.ServerApplication ||
46+
fileType === BuildOutputFileType.ServerRoot;
47+
48+
return isServer ? isServerFile : !isServerFile;
49+
})
50+
.map(({ path }) => path),
51+
);
52+
53+
const filteredOutputs: Metafile['outputs'] = {};
54+
for (const [outputPath, output] of Object.entries(metafile.outputs)) {
55+
if (!outputPathsForType.has(outputPath)) {
56+
continue;
57+
}
58+
if (initial && !initialFiles?.has(outputPath)) {
59+
continue;
60+
}
61+
filteredOutputs[outputPath] = output;
62+
}
63+
64+
const referencedInputs = new Set<string>();
65+
for (const output of Object.values(filteredOutputs)) {
66+
for (const inputPath of Object.keys(output.inputs)) {
67+
referencedInputs.add(inputPath);
68+
}
69+
}
70+
71+
const filteredInputs: Metafile['inputs'] = {};
72+
for (const [inputPath, input] of Object.entries(metafile.inputs)) {
73+
if (referencedInputs.has(inputPath)) {
74+
filteredInputs[inputPath] = input;
75+
}
76+
}
77+
78+
return {
79+
inputs: filteredInputs,
80+
outputs: filteredOutputs,
81+
};
82+
}
83+
3284
export function logBuildStats(
3385
metafile: Metafile,
3486
outputFiles: BuildOutputFile[],

0 commit comments

Comments
 (0)