@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
27 lines (26 loc) • 970 B
JavaScript
import { ERROR_NULL, ERROR_INVALID, WARN_TRIMMING, ERROR_EMPTY } from '../../logger/constants';
import { isString } from '../lang';
// include BOM and nbsp
var TRIMMABLE_SPACES_REGEX = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/;
export function validateDefinition(log, maybeDefinition, method, item) {
if (item === void 0) { item = 'feature flag name'; }
if (maybeDefinition == undefined) { // eslint-disable-line eqeqeq
log.error(ERROR_NULL, [method, item]);
}
else if (!isString(maybeDefinition)) {
log.error(ERROR_INVALID, [method, item]);
}
else {
if (TRIMMABLE_SPACES_REGEX.test(maybeDefinition)) {
log.warn(WARN_TRIMMING, [method, item, maybeDefinition]);
maybeDefinition = maybeDefinition.trim();
}
if (maybeDefinition.length > 0) {
return maybeDefinition;
}
else {
log.error(ERROR_EMPTY, [method, item]);
}
}
return false;
}