UNPKG

@juspay/neurolink

Version:

The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002

24 lines (23 loc) • 959 B
/** Node's fetch Request does not always abort when a completed upload's peer * disconnects before response headers. Observe the response socket as well. */ export function bindProxyClientCancellation(request, bindings, controller) { const abort = () => controller.abort(new DOMException("Client disconnected", "AbortError")); const close = () => { if (!bindings?.outgoing?.writableFinished) { abort(); } }; request.signal.addEventListener("abort", abort, { once: true }); bindings?.incoming?.once("aborted", abort); bindings?.outgoing?.once("close", close); if (request.signal.aborted || bindings?.incoming?.aborted || bindings?.outgoing?.destroyed) { abort(); } return () => { request.signal.removeEventListener("abort", abort); bindings?.incoming?.removeListener("aborted", abort); bindings?.outgoing?.removeListener("close", close); }; }