ember-validators
Version:
A collection of EmberJS validators
37 lines (30 loc) • 892 B
JavaScript
import { assert } from '@ember/debug';
import { isArray } from '@ember/array';
import { isPresent } from '@ember/utils';
import validationError from 'ember-validators/utils/validation-error';
/**
* @class Collection
* @module Validators
*/
/**
* @method validate
* @param {Any} value
* @param {Object} options
* @param {Boolean} options.collection
* @param {Object} model
* @param {String} attribute
*/
export default function validateCollection(value, options, model, attribute) {
let collection = options.collection;
assert(
`[validator:collection] [${attribute}] option 'collection' is required`,
isPresent(collection)
);
if (collection === true && !isArray(value)) {
return validationError('collection', value, options);
}
if (collection === false && isArray(value)) {
return validationError('singular', value, options);
}
return true;
}