import type { WebSocketLike } from './types.js'
+import type { WebSocketReadyState } from './types.js'
interface BrowserWebSocket {
close(code?: number, reason?: string): void
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 })
}
}
onopenCallback = callback
},
- get readyState (): number {
- return ws.readyState
+ get readyState (): WebSocketReadyState {
+ return ws.readyState as WebSocketReadyState
},
send (data: string): void {
&& 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 \