UNPKG

ember-changeset-validations

Version:
43 lines (40 loc) 1.3 kB
import buildMessage from '../utils/validation-errors.js'; import evValidatePresence from 'ember-validators/presence'; import { get } from '@ember/object'; function validatePresence(options) { let targets; if (typeof options === 'boolean') { options = { presence: options }; } else if (options && options.on !== undefined) { if (typeof options.on === 'string') { targets = [options.on]; } else if (Array.isArray(options.on)) { targets = options.on; } delete options.on; } return (key, value, _oldValue, changes, content) => { if (targets && !targets.some(target => { const change = get(changes, target); return change || change === undefined && get(content, target); })) { return true; } let result = evValidatePresence(value, options, null, key); if (typeof result === 'boolean' || typeof result === 'string') { return result; } else { // We flipped the meaning behind `present` and `blank` so switch the two if (result.type === 'present') { result.type = 'blank'; } else if (result.type === 'blank') { result.type = 'present'; } return buildMessage(key, result); } }; } export { validatePresence as default }; //# sourceMappingURL=presence.js.map