UNPKG

insomnia-plugin-valorant

Version:
60 lines 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.asyncSocketRead = exports.asyncSocketWrite = exports.waitForConnect = void 0; // Could use better types but this is just hacky code anyway function handleFirstOfMany(emitter, eventNames, callback) { const eventHandlers = eventNames.map(name => { const handler = (...data) => { for (const otherHandler of eventHandlers) { if (otherHandler.name === name) continue; emitter.removeListener(otherHandler.name, otherHandler.handler); } callback(name, data); }; emitter.once(name, handler); return { name, handler }; }); } async function waitForConnect(socket) { if (!socket.connecting) return; return new Promise((resolve, reject) => { handleFirstOfMany(socket, ['connect', 'error'], (name, data) => { if (name === 'connect') { resolve(); } else if (name === 'error') { reject(data[0]); } }); }); } exports.waitForConnect = waitForConnect; async function asyncSocketWrite(socket, data) { return new Promise((resolve, reject) => { socket.write(data, err => { if (err) reject(err); else resolve(); }); }); } exports.asyncSocketWrite = asyncSocketWrite; async function asyncSocketRead(socket, abortSignal) { return new Promise((resolve, reject) => { const onData = (data) => { abortSignal?.removeEventListener('abort', onAbort); resolve(data); }; const onAbort = () => { socket.removeListener('data', onData); reject(new Error('Aborted')); }; abortSignal?.addEventListener('abort', onAbort); socket.once('data', onData); }); } exports.asyncSocketRead = asyncSocketRead; //# sourceMappingURL=async-socket.js.map