From 37f329c346d381097c03f6e6ed61ec4b20e3b14e Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Fri, 3 Nov 2023 08:55:49 +0000 Subject: [PATCH 1/2] fix(@angular-devkit/build-angular): remove CJS usage warnings for inactionable packages This commit add `critters` and `express` to the CJS allowed deps. --- .../src/tools/esbuild/commonjs-checker.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/tools/esbuild/commonjs-checker.ts b/packages/angular_devkit/build_angular/src/tools/esbuild/commonjs-checker.ts index 102e1060198d..4dd44ba4caaf 100644 --- a/packages/angular_devkit/build_angular/src/tools/esbuild/commonjs-checker.ts +++ b/packages/angular_devkit/build_angular/src/tools/esbuild/commonjs-checker.ts @@ -49,6 +49,11 @@ export function checkCommonJSModules( // using `provideHttpClient(withFetch())`. allowedRequests.add('xhr2'); + // Packages used by @angular/ssr. + // While critters is ESM it has a number of direct and transtive CJS deps. + allowedRequests.add('express'); + allowedRequests.add('critters'); + // Find all entry points that contain code (JS/TS) const files: string[] = []; for (const { entryPoint } of Object.values(metafile.outputs)) { @@ -76,8 +81,14 @@ export function checkCommonJSModules( if (!imported.original || seenFiles.has(imported.path)) { continue; } + seenFiles.add(imported.path); + // If the dependency is allowed ignore all other checks + if (allowedRequests.has(imported.original)) { + continue; + } + // Only check actual code files if (!isPathCode(imported.path)) { continue; @@ -141,11 +152,7 @@ function isPathCode(name: string): boolean { * @returns True, if specifier is potentially relative; false, otherwise. */ function isPotentialRelative(specifier: string): boolean { - if (specifier[0] === '.') { - return true; - } - - return false; + return specifier[0] === '.'; } /** From a7700ef739eb92e20dca8229472993a96e5d1a8d Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Fri, 3 Nov 2023 09:01:51 +0000 Subject: [PATCH 2/2] refactor(@angular-devkit/build-angular): remove redundant `async` from render-worker The `async` keyword is not needed here. --- .../build_angular/src/utils/server-rendering/render-worker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/angular_devkit/build_angular/src/utils/server-rendering/render-worker.ts b/packages/angular_devkit/build_angular/src/utils/server-rendering/render-worker.ts index 8b87d237400a..8007986454f9 100644 --- a/packages/angular_devkit/build_angular/src/utils/server-rendering/render-worker.ts +++ b/packages/angular_devkit/build_angular/src/utils/server-rendering/render-worker.ts @@ -28,7 +28,7 @@ export interface RenderOptions { const { outputFiles, document, inlineCriticalCss } = workerData as RenderWorkerData; /** Renders an application based on a provided options. */ -async function render(options: RenderOptions): Promise { +function render(options: RenderOptions): Promise { return renderPage({ ...options, outputFiles,