UNPKG

it-ws

Version:

Simple async iterables for websocket client connections

27 lines 846 B
export default async (socket) => { // if the socket is closing or closed, return end if (socket.readyState >= 2) { throw new Error('socket closed'); } // if open, return if (socket.readyState === 1) { return; } await new Promise((resolve, reject) => { function cleanup() { socket.removeEventListener('open', handleOpen); socket.removeEventListener('error', handleErr); } function handleOpen() { cleanup(); resolve(); } function handleErr(event) { cleanup(); reject(event.error ?? new Error(`connect ECONNREFUSED ${socket.url}`)); } socket.addEventListener('open', handleOpen); socket.addEventListener('error', handleErr); }); }; //# sourceMappingURL=ready.js.map