@deeeed/hyperliquid-node20
Version:
Unofficial Hyperliquid API SDK for all major JS runtimes, written in TypeScript. Fork with Node.js 20.18.0+ compatibility.
42 lines (41 loc) • 1.25 kB
JavaScript
;
// Polyfills for Node.js 20.18.0+ compatibility
Object.defineProperty(exports, "__esModule", { value: true });
exports.withResolvers = withResolvers;
exports.abortTimeout = abortTimeout;
exports.abortAny = abortAny;
// Polyfill for Promise.withResolvers() (Node.js 22+)
function withResolvers() {
let resolve;
let reject;
const promise = new Promise((res, rej) => {
resolve = res;
reject = rej;
});
return { promise, resolve, reject };
}
// Polyfill for AbortSignal.timeout() (Node.js 22+)
function abortTimeout(delay) {
if (AbortSignal.timeout) {
return AbortSignal.timeout(delay);
}
const controller = new AbortController();
setTimeout(() => controller.abort(), delay);
return controller.signal;
}
// Polyfill for AbortSignal.any() (Node.js 22+)
function abortAny(signals) {
if (AbortSignal.any) {
return AbortSignal.any(signals);
}
const controller = new AbortController();
const onAbort = () => controller.abort();
for (const signal of signals) {
if (signal.aborted) {
controller.abort();
break;
}
signal.addEventListener('abort', onAbort, { once: true });
}
return controller.signal;
}