UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

28 lines (27 loc) 947 B
// a simple util for building a message object export const fmtMessage = (type, data = {}, uid) => { const message = { type, ...data }; if (uid !== undefined) { message['uid'] = uid; } return JSON.stringify(message); }; // we may need this later for slow connections export const safeSend = async (client, data, delay = 100) => { if (client.readyState !== client.OPEN) return false; if (client.bufferedAmount > 0) { // wait for the buffer to clear return new Promise((resolve) => { setTimeout(() => { safeSend(client, data, delay).then((success) => resolve(success)); }, delay); }); } client.send(data); return true; }; // an often used message type extractor function export const getMessageType = (message) => { return typeof message !== 'object' || Array.isArray(message) || message === null ? '' : String(message.type); };