Skip to content

Commit

Permalink
refactor(validators): Extract validateMultiple
Browse files Browse the repository at this point in the history
  • Loading branch information
naiveai committed Dec 29, 2017
1 parent df8e369 commit bf845c2
Showing 1 changed file with 20 additions and 24 deletions.
44 changes: 20 additions & 24 deletions src/client/entity-editor/validators/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,22 @@ import {Iterable} from 'immutable';
import _ from 'lodash';


export function validateMultiple(
values: any[],
validationFunction: (value: any) => boolean,
additionalArgs: any[] = []): boolean {
let every = (object, predicate) => _.every(object, predicate);
if (Iterable.isIterable(values)) {
every = (object, predicate) => object.every(predicate);
}
else if (!_.isObject(values)) {
return false;
}

return every(values, (value) =>
validationFunction(value, ...additionalArgs));
}

export function validateAliasName(value: any): boolean {
return validateRequiredString(value);
}
Expand All @@ -50,17 +66,8 @@ export function validateAlias(value: any): boolean {
);
}

export function validateAliases(values: any): boolean {
let every = (object, predicate) => _.every(object, predicate);
if (Iterable.isIterable(values)) {
every = (object, predicate) => object.every(predicate);
}
else if (!_.isObject(values)) {
return false;
}

return every(values, (value) => validateAlias(value));
}
export const validateAliases = _.partial(
validateMultiple, _, validateAlias);

export type IdentifierType = {
id: number,
Expand Down Expand Up @@ -116,19 +123,8 @@ export function validateIdentifier(
);
}

export function validateIdentifiers(
values: any, types?: ?Array<IdentifierType>
): boolean {
let every = (object, predicate) => _.every(object, predicate);
if (Iterable.isIterable(values)) {
every = (object, predicate) => object.every(predicate);
}
else if (!_.isObject(values)) {
return false;
}

return every(values, (value) => validateIdentifier(value, types));
}
export const validateIdentifiers = _.partial(
validateMultiple, _, validateIdentifier, _);

export function validateNameSectionName(value: any): boolean {
return validateRequiredString(value);
Expand Down

0 comments on commit bf845c2

Please sign in to comment.