UNPKG

@splitsoftware/splitio-commons

Version:
27 lines (26 loc) 970 B
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; }