Skip to content

Commit b01029a

Browse files
author
Larry Botha
committed
fix(geterrorsfromschema): fix errors returning object when string expected
re #133, close #131
1 parent 9dd90be commit b01029a

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

lib/util.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import {dequal as isEqual} from 'dequal/lite';
22

33
function subscribeOnce(observable) {
4-
return new Promise(resolve => {
4+
return new Promise((resolve) => {
55
observable.subscribe(resolve)(); // immediately invoke to unsubscribe
66
});
77
}
88

99
function update(object, path, value) {
10-
object.update(o => {
10+
object.update((o) => {
1111
set(o, path, value);
1212
return o;
1313
});
@@ -46,21 +46,23 @@ function getErrorsFromSchema(initialValues, schema, errors = {}) {
4646
errors[key] = getErrorsFromSchema(
4747
initialValues[key],
4848
schema[key].fields,
49-
{...errors[key]},
49+
{...errors[key]},
5050
);
5151
break;
5252
}
5353

5454
case schema[key].type === 'array': {
5555
const values =
5656
initialValues && initialValues[key] ? initialValues[key] : [];
57-
errors[key] = values.map((value) =>
58-
getErrorsFromSchema(
57+
errors[key] = values.map((value) => {
58+
const innerError = getErrorsFromSchema(
5959
value,
6060
schema[key].innerType.fields,
61-
Object.assign({}, errors[key]),
62-
),
63-
);
61+
{...errors[key]},
62+
);
63+
64+
return Object.keys(innerError).length > 0 ? innerError : '';
65+
});
6466
break;
6567
}
6668

@@ -77,7 +79,7 @@ const deepEqual = isEqual;
7779

7880
function assignDeep(object, value) {
7981
if (Array.isArray(object)) {
80-
return object.map(o => assignDeep(o, value));
82+
return object.map((o) => assignDeep(o, value));
8183
}
8284
const copy = {};
8385
for (const key in object) {

0 commit comments

Comments
 (0)