Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
async function processData(data) {
const buff = Buffer.alloc(data.length + 1);
buff.writeInt8(streamNum, 0);
if (data instanceof Buffer) {
data.copy(buff, 1);
} else {
buff.write(data, 1);
}
let i = 0;
try {
for (; i < tryLimit; ++i) {
if (ws && ws.readyState === WebSocket.OPEN) {
ws.send(buff);
break;
} else {
ws = await createWS()
}
}
} catch (e) {
// TODO: Сonsider to log network errors.
console.error(e)
stdin.end()
}
if (i >= tryLimit) {
stdin.end()
}
}
return new Promise((resolve, reject) => {
if (!this.socket) {
throw new Error("Socket undefined. This must be called after connecting.");
}
if (this.closed) {
throw new Error("Socket was closed, so no data can be sent anymore.");
}
// this exception should be thrown by send() automatically according to
// https://developer.mozilla.org/de/docs/Web/API/WebSocket#send() but it does not work in browsers
if (this.socket.readyState !== WebSocket.OPEN) {
throw new Error("Websocket is not open");
}
if (environmentIsNodeJs()) {
this.socket.send(data, err => (err ? reject(err) : resolve()));
} else {
// Browser websocket send method does not accept a callback
this.socket.send(data);
resolve();
}
});
}
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const buff = Buffer.alloc(data.length + 1);
buff.writeInt8(streamNum, 0);
if (data instanceof Buffer) {
data.copy(buff, 1);
}
else {
buff.write(data, 1);
}
let i = 0;
for (; i < retryCount; ++i) {
if (ws !== null && ws.readyState === WebSocket.OPEN) {
ws.send(buff);
break;
}
else {
ws = yield createWS();
}
}
if (i >= retryCount) {
throw new Error("can't send data to ws");
}
});
}