21 lines
656 B
TypeScript
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;
|
|
}
|