@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
22 lines (18 loc) • 923 B
text/typescript
import { ERROR_EMPTY_ARRAY } from '../../logger/constants';
import { ILogger } from '../../logger/types';
import { uniq } from '../lang';
import { validateDefinition } from './definition';
export function validateDefinitions(log: ILogger, maybeDefinitions: any, method: string, listName = 'feature flag names', item = 'feature flag name'): string[] | false {
if (Array.isArray(maybeDefinitions) && maybeDefinitions.length > 0) {
let validatedArray: string[] = [];
// Remove invalid values
maybeDefinitions.forEach(maybeDefinition => {
const definitionName = validateDefinition(log, maybeDefinition, method, item);
if (definitionName) validatedArray.push(definitionName);
});
// Strip off duplicated values if we have valid definition names then return
if (validatedArray.length) return uniq(validatedArray);
}
log.error(ERROR_EMPTY_ARRAY, [method, listName]);
return false;
}