@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
31 lines (30 loc) • 1.14 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateDefinition = void 0;
var constants_1 = require("../../logger/constants");
var lang_1 = require("../lang");
// include BOM and nbsp
var TRIMMABLE_SPACES_REGEX = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/;
function validateDefinition(log, maybeDefinition, method, item) {
if (item === void 0) { item = 'feature flag name'; }
if (maybeDefinition == undefined) { // eslint-disable-line eqeqeq
log.error(constants_1.ERROR_NULL, [method, item]);
}
else if (!(0, lang_1.isString)(maybeDefinition)) {
log.error(constants_1.ERROR_INVALID, [method, item]);
}
else {
if (TRIMMABLE_SPACES_REGEX.test(maybeDefinition)) {
log.warn(constants_1.WARN_TRIMMING, [method, item, maybeDefinition]);
maybeDefinition = maybeDefinition.trim();
}
if (maybeDefinition.length > 0) {
return maybeDefinition;
}
else {
log.error(constants_1.ERROR_EMPTY, [method, item]);
}
}
return false;
}
exports.validateDefinition = validateDefinition;