Skip to content

Commit 010ee84

Browse files
committed
fix(perps): add CloseEvent polyfill for hyperliquid SDK WebSocket transport
@nktkas/rews v2 (dependency of @nktkas/hyperliquid 0.32.2) uses `new CloseEvent(...)` which is not available in React Native/Hermes. This caused the WebSocket transport to crash on initialization, preventing perps from loading in E2E tests.
1 parent 608096d commit 010ee84

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

shim.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,19 @@ if (typeof global.CustomEvent === 'undefined') {
130130
};
131131
}
132132

133+
// CloseEvent polyfill for @nktkas/rews v2 (used by Hyperliquid SDK WebSocket transport)
134+
// React Native/Hermes does not provide CloseEvent as a global constructor
135+
if (typeof global.CloseEvent === 'undefined') {
136+
global.CloseEvent = function (type, params) {
137+
params = params || {};
138+
const event = new global.Event(type, params);
139+
event.code = params.code || 0;
140+
event.reason = params.reason || '';
141+
event.wasClean = params.wasClean || false;
142+
return event;
143+
};
144+
}
145+
133146
class AbortError extends Error {
134147
constructor(message) {
135148
super(message);

0 commit comments

Comments
 (0)