@cumulus/message
Version:
Utilities for building and parsing Cumulus messages
35 lines • 1.73 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMessageProviderId = exports.getMessageProvider = exports.isMessageWithProvider = exports.isMessageProvider = void 0;
const CumulusMessage_1 = require("./CumulusMessage");
const isMessageProvider = (obj) => (obj instanceof Object
// in testing instanceof String can return false for string literals
&& 'id' in obj && (typeof (obj.id) === 'string' || obj.id instanceof String)
&& 'protocol' in obj && (typeof (obj.protocol) === 'string' || obj.protocol instanceof String)
&& 'host' in obj && (typeof (obj.host) === 'string' || obj.host instanceof String)
&& ('port' in obj ? (typeof (obj.port) === 'number' || obj.port instanceof Number) : true));
exports.isMessageProvider = isMessageProvider;
const isMessageWithProvider = (obj) => ((0, CumulusMessage_1.isCumulusMessageLike)(obj)
&& (0, exports.isMessageProvider)(obj?.meta?.provider));
exports.isMessageWithProvider = isMessageWithProvider;
/**
* Get the provider from a workflow message, if any.
*
* @param {MessageWithProvider} message - A workflow message object
* @returns {MessageProvider|string} The provider object
*
* @alias module:Providers
*/
const getMessageProvider = (message) => message.meta?.provider;
exports.getMessageProvider = getMessageProvider;
/**
* Get the provider ID from a workflow message, if any.
*
* @param {MessageWithProvider} message - A workflow message object
* @returns {undefined|string} The provider ID
*
* @alias module:Providers
*/
const getMessageProviderId = (message) => (0, exports.getMessageProvider)(message)?.id;
exports.getMessageProviderId = getMessageProviderId;
//# sourceMappingURL=Providers.js.map
;