UNPKG

1.73 kBJavaScriptView Raw
1
2
3/**
4 * Add constraints to the given subject type.
5 */
6export function addConstraints(subject) {
7 var _subject$constraints;
8
9 for (var _len = arguments.length, constraints = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
10 constraints[_key - 1] = arguments[_key];
11 }
12
13 (_subject$constraints = subject.constraints).push.apply(_subject$constraints, babelHelpers.toConsumableArray(constraints));
14}
15
16/**
17 * Collect any errors from constraints on the given subject type.
18 */
19
20
21export function collectConstraintErrors(subject, validation, path) {
22 var constraints = subject.constraints;
23 var length = constraints.length;
24
25 var hasErrors = false;
26
27 for (var _len2 = arguments.length, input = Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {
28 input[_key2 - 3] = arguments[_key2];
29 }
30
31 for (var i = 0; i < length; i++) {
32 var constraint = constraints[i];
33 var violation = constraint.apply(undefined, babelHelpers.toConsumableArray(input));
34 if (typeof violation === 'string') {
35 validation.addError(path, this, violation);
36 hasErrors = true;
37 }
38 }
39 return hasErrors;
40}
41
42/**
43 * Determine whether the input passes the constraints on the subject type.
44 */
45export function constraintsAccept(subject) {
46 var constraints = subject.constraints;
47 var length = constraints.length;
48
49 for (var _len3 = arguments.length, input = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
50 input[_key3 - 1] = arguments[_key3];
51 }
52
53 for (var i = 0; i < length; i++) {
54 var constraint = constraints[i];
55 if (typeof constraint.apply(undefined, babelHelpers.toConsumableArray(input)) === 'string') {
56 return false;
57 }
58 }
59 return true;
60}
\No newline at end of file