modems.js 1.05 KB
/* eslint-disable no-console */
const DEBUG = !!process.env.DEBUG_KOMODO_CENTER_CP_EVO_MODEMS;

const config = require('komodo-sdk/config');

exports.modemsDictionary = (arrayOfModem) => {
    const modems = arrayOfModem || config.modems || [];
    const retval = {};
    modems.forEach((modem) => {
        retval[modem.name] = modem;
    });
    return retval;
};

exports.enabledModems = (arrayOfModem) => {
    const modems = arrayOfModem || config.modems || [];
    return modems.filter((modem) => !modem.disabled);
};

exports.outgoingModems = (arrayOfModem) => {
    const modems = arrayOfModem || config.modems || [];
    return modems.filter((modem) => !modem.disabled && modem.outgoing);
};

exports.randomModem = (arrayOfModem) => {
    const modems = this.outgoingModems(arrayOfModem);

    if (DEBUG) {
        console.log('DEBUG_MODEMS: Get random modems', {
            haystack: modems,
        });
    }
    const modemCount = modems.length;

    if (!modemCount) return null;

    const idx = Math.floor(Math.random() * modemCount);
    return modems[idx];
};