@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
28 lines (27 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateIntegrations = void 0;
var constants_1 = require("../../../logger/constants");
/**
* This function validates `settings.integrations` object
*
* @param settings - config object provided by the user to initialize the sdk
* @param integrationValidator - filter used to remove invalid integration items
* @param extraWarning - optional string used to better describe why an item might be invalid
*
* @returns array of valid integration items. The array might be empty if `settings` object does not have valid integrations.
*/
function validateIntegrations(settings, integrationValidator, extraWarning) {
var integrations = settings.integrations, log = settings.log;
// If integrations is not an array or an empty array, we return an empty array (no integrations).
if (!Array.isArray(integrations) || integrations.length === 0)
return [];
// We remove invalid integration items
var validIntegrations = integrations.filter(integrationValidator);
// Log a warning if at least one item is invalid
var invalids = integrations.length - validIntegrations.length;
if (invalids)
log.warn(constants_1.WARN_INTEGRATION_INVALID, [invalids, extraWarning || '']);
return validIntegrations;
}
exports.validateIntegrations = validateIntegrations;