From 0c4a5c599db1aced40c4512c065de9022c8df986 Mon Sep 17 00:00:00 2001 From: hawkgs Date: Wed, 3 Dec 2025 17:55:03 +0200 Subject: [PATCH] fix(devtools): prod app detected screen Do not call `getSupportedApis` in a prod app since it throws an error due to the absence of `ng`, which prevents the FE from getting the `ngAvailability` message and, respectively, the proper info screen that DevTools cannot be used on a prod app. --- .../ng-devtools-backend/src/lib/client-event-subscribers.ts | 6 ++++-- devtools/projects/ng-devtools/src/lib/devtools.component.ts | 5 ++++- devtools/projects/protocol/src/lib/messages.ts | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/devtools/projects/ng-devtools-backend/src/lib/client-event-subscribers.ts b/devtools/projects/ng-devtools-backend/src/lib/client-event-subscribers.ts index bbafa373c0b..7b7fca6adc9 100644 --- a/devtools/projects/ng-devtools-backend/src/lib/client-event-subscribers.ts +++ b/devtools/projects/ng-devtools-backend/src/lib/client-event-subscribers.ts @@ -339,13 +339,15 @@ const checkForAngular = (messageBus: MessageBus): void => { initializeOrGetDirectiveForestHooks(); } + const devMode = appIsAngularInDevMode(); + messageBus.emit('ngAvailability', [ { version: ngVersion.toString(), - devMode: appIsAngularInDevMode(), + devMode, ivy: appIsIvy, hydration: isHydrationEnabled(), - supportedApis: getSupportedApis(), + supportedApis: devMode ? getSupportedApis() : null, }, ]); }; diff --git a/devtools/projects/ng-devtools/src/lib/devtools.component.ts b/devtools/projects/ng-devtools/src/lib/devtools.component.ts index 61e35f263df..e51f662f46d 100644 --- a/devtools/projects/ng-devtools/src/lib/devtools.component.ts +++ b/devtools/projects/ng-devtools/src/lib/devtools.component.ts @@ -100,7 +100,10 @@ export class DevToolsComponent implements OnDestroy { this.ivy.set(ivy); this._interval$.unsubscribe(); this.hydration.set(hydration); - this.supportedApis.init(supportedApis); + + if (supportedApis) { + this.supportedApis.init(supportedApis); + } }); } diff --git a/devtools/projects/protocol/src/lib/messages.ts b/devtools/projects/protocol/src/lib/messages.ts index 150bbc514ca..c9c947310e7 100644 --- a/devtools/projects/protocol/src/lib/messages.ts +++ b/devtools/projects/protocol/src/lib/messages.ts @@ -385,7 +385,7 @@ export interface Events { devMode: boolean; ivy: boolean; hydration: boolean; - supportedApis: SupportedApis; + supportedApis: SupportedApis | null; }) => void; inspectorStart: () => void;