11import { dequal as isEqual } from 'dequal/lite' ;
22
33function subscribeOnce ( observable ) {
4- return new Promise ( resolve => {
4+ return new Promise ( ( resolve ) => {
55 observable . subscribe ( resolve ) ( ) ; // immediately invoke to unsubscribe
66 } ) ;
77}
88
99function 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
7880function 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