@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
25 lines (24 loc) • 740 B
JavaScript
//#region src/websocket/utils/message.ts
const fmtMessage = (type, data = {}, uid) => {
const message = {
type,
...data
};
if (uid !== void 0) message["uid"] = uid;
return JSON.stringify(message);
};
const safeSend = async (client, data, delay = 100) => {
if (client.readyState !== client.OPEN) return false;
if (client.bufferedAmount > 0) return new Promise((resolve) => {
setTimeout(() => {
safeSend(client, data, delay).then((success) => resolve(success));
}, delay);
});
client.send(data);
return true;
};
function getMessageType(message) {
return typeof message !== "object" || Array.isArray(message) || message === null ? "" : String(message.type);
}
//#endregion
export { fmtMessage, getMessageType, safeSend };