UNPKG

@buildable/messages

Version:

A fully managed messaging service that lets you easily exchange event data across any app or resource.

44 lines (43 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deconstructListenerId = exports.getListenerId = exports.getPartialTopic = exports.getTransactionInput = exports.sleep = exports.SEPERATOR = void 0; exports.SEPERATOR = process.env.BLD_LISTENER_SEPARATOR || "$$$"; const sleep = (n) => new Promise(res => setTimeout(res, n)); exports.sleep = sleep; const getTransactionInput = (event) => { const { payload = "{}", headers = "{}", query = "{}" } = event; try { return { payload: JSON.parse(payload), headers: JSON.parse(headers), query: JSON.parse(query), event }; } catch (e) { console.error("Error parsing transaction input", e, "event: ", event); return { payload, headers, query, event }; } }; exports.getTransactionInput = getTransactionInput; const getPartialTopic = ({ eventName, platform, label }) => { return `${platform}.${label}.${eventName}`; }; exports.getPartialTopic = getPartialTopic; const getListenerId = ({ eventName, txKey, platform, label }) => { const partialTopic = (0, exports.getPartialTopic)({ eventName, platform, label }); return partialTopic + exports.SEPERATOR + txKey; }; exports.getListenerId = getListenerId; const deconstructListenerId = (id) => { const [partialTopic, txKey] = id.split(exports.SEPERATOR); const [platform, label, ...rest] = partialTopic.split("."); const eventName = rest.join("."); return { platform, label, eventName, txKey }; }; exports.deconstructListenerId = deconstructListenerId;