From bbb04f4d31c309e46ed02be961ee086bc1d921d1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Thu, 16 Apr 2026 03:10:16 +0200 Subject: [PATCH] fix(web): copy workspace node_modules, harmonize browser adapter, add frozen-lockfile --- ui/common/src/client/browser-adapter.ts | 12 +++++++----- ui/web/docker/Dockerfile | 6 +++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ui/common/src/client/browser-adapter.ts b/ui/common/src/client/browser-adapter.ts index 8607b66b..397a4b75 100644 --- a/ui/common/src/client/browser-adapter.ts +++ b/ui/common/src/client/browser-adapter.ts @@ -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 { diff --git a/ui/web/docker/Dockerfile b/ui/web/docker/Dockerfile index 07b9db90..dc15dc34 100644 --- a/ui/web/docker/Dockerfile +++ b/ui/web/docker/Dockerfile @@ -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 \ -- 2.43.0