]> Piment Noir Git Repositories - e-mobility-charging-stations-simulator.git/commitdiff
fix(web): copy workspace node_modules, harmonize browser adapter, add frozen-lockfile
authorJérôme Benoit <jerome.benoit@sap.com>
Thu, 16 Apr 2026 01:10:16 +0000 (03:10 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Thu, 16 Apr 2026 01:10:52 +0000 (03:10 +0200)
ui/common/src/client/browser-adapter.ts
ui/web/docker/Dockerfile

index 8607b66bc3936feea0cd339e9d997fdecf94e070..397a4b75db42c47b787c1008c845e10b55f5ed27 100644 (file)
@@ -1,4 +1,5 @@
 import type { WebSocketLike } from './types.js'
+import type { WebSocketReadyState } from './types.js'
 
 interface BrowserWebSocket {
   close(code?: number, reason?: string): void
@@ -25,9 +26,10 @@ export const createBrowserWsAdapter = (ws: BrowserWebSocket): WebSocketLike => {
 
   ws.onerror = event => {
     if (onerrorCallback != null) {
-      const raw = event as { message?: string }
-      const message = raw.message ?? 'WebSocket error'
-      const error = new Error(message)
+      const raw = event as { error?: unknown; message?: string }
+      const error =
+        raw.error instanceof Error ? raw.error : new Error(raw.message ?? 'WebSocket error')
+      const message = raw.message ?? error.message
       onerrorCallback({ error, message })
     }
   }
@@ -77,8 +79,8 @@ export const createBrowserWsAdapter = (ws: BrowserWebSocket): WebSocketLike => {
       onopenCallback = callback
     },
 
-    get readyState (): number {
-      return ws.readyState
+    get readyState (): WebSocketReadyState {
+      return ws.readyState as WebSocketReadyState
     },
 
     send (data: string): void {
index 07b9db9062040d1af18aea5d8009e9a4762d09e6..dc15dc3424268e357cff690d73cd1aed8cd6f8b2 100644 (file)
@@ -9,17 +9,17 @@ RUN set -ex \
   && corepack prepare pnpm@latest --activate \
   && pnpm set progress=false \
   && pnpm config set depth 0 \
-  && pnpm install --ignore-scripts \
+  && pnpm install --ignore-scripts --frozen-lockfile \
   && cp ui/web/docker/config.json ui/web/public/config.json \
   && pnpm --filter webui build
 
 FROM node:lts-alpine
 
 WORKDIR /usr/app
+COPY --from=builder /usr/builder/ui/web/package.json ./
+COPY --from=builder /usr/builder/ui/web/node_modules ./node_modules
 COPY --from=builder /usr/builder/ui/web/dist ./dist
 COPY --from=builder /usr/builder/ui/web/start.js ./
-COPY --from=builder /usr/builder/ui/web/package.json ./
-COPY --from=builder /usr/builder/node_modules ./node_modules
 COPY ui/web/docker/run.sh /run.sh
 COPY ui/web/docker/autoconfig.sh /autoconfig.sh
 RUN set -ex \