Files
2026-05-27 23:47:53 +01:00

21 lines
656 B
TypeScript

import { webcrypto } from "node:crypto";
type WritableGlobal = {
crypto?: Crypto;
WebSocket?: unknown;
};
const g = globalThis as WritableGlobal;
if (g.crypto === undefined) {
g.crypto = webcrypto as unknown as Crypto;
}
// SurrealDB v2 client (`new WebSocketImpl(...)`) reads `globalThis.WebSocket`.
// Vitest's Node environment does not expose Bun's built-in WebSocket; polyfill
// using the `ws` package (already a transitive dep) so the live integration
// suite can open WebSockets to the test container.
if (g.WebSocket === undefined) {
const { WebSocket } = require("ws") as { WebSocket: unknown };
g.WebSocket = WebSocket;
}