tailwind
Version:
tailwind is a base module for streaming and evented CQS applications.
35 lines (26 loc) • 660 B
JavaScript
const WebSocket = require('ws');
const sendMessage = async function (socket, { type, procedureId, payload, statusCode = 200 }) {
if (!socket) {
throw new Error('Socket is missing.');
}
if (!type) {
throw new Error('Type is missing.');
}
const message = { type, payload, statusCode };
if (procedureId) {
message.procedureId = procedureId;
}
if (socket.readyState !== WebSocket.OPEN) {
return;
}
await new Promise((resolve, reject) => {
socket.send(JSON.stringify(message), err => {
if (err) {
return reject(err);
}
resolve();
});
});
};
module.exports = sendMessage;
;