@@ -373,9 +373,9 @@ class StateNode<
373
373
this . strict = ! ! this . config . strict ;
374
374
375
375
// TODO: deprecate (entry)
376
- this . onEntry = toArray ( this . config . entry || this . config . onEntry ) . map (
377
- action => toActionObject ( action )
378
- ) ;
376
+ this . onEntry = toArray (
377
+ this . config . entry || this . config . onEntry
378
+ ) . map ( action => toActionObject ( action ) ) ;
379
379
// TODO: deprecate (exit)
380
380
this . onExit = toArray ( this . config . exit || this . config . onExit ) . map ( action =>
381
381
toActionObject ( action )
@@ -510,14 +510,11 @@ class StateNode<
510
510
511
511
const transitions = this . transitions ;
512
512
513
- return ( this . __cache . on = transitions . reduce (
514
- ( map , transition ) => {
515
- map [ transition . eventType ] = map [ transition . eventType ] || [ ] ;
516
- map [ transition . eventType ] . push ( transition as any ) ;
517
- return map ;
518
- } ,
519
- { } as TransitionDefinitionMap < TContext , TEvent >
520
- ) ) ;
513
+ return ( this . __cache . on = transitions . reduce ( ( map , transition ) => {
514
+ map [ transition . eventType ] = map [ transition . eventType ] || [ ] ;
515
+ map [ transition . eventType ] . push ( transition as any ) ;
516
+ return map ;
517
+ } , { } as TransitionDefinitionMap < TContext , TEvent > ) ) ;
521
518
}
522
519
523
520
public get after ( ) : Array < DelayedTransitionDefinition < TContext , TEvent > > {
@@ -642,21 +639,20 @@ class StateNode<
642
639
}
643
640
644
641
const subStateKeys = keys ( stateValue ) ;
645
- const subStateNodes : Array <
646
- StateNode < TContext , any , TEvent >
647
- > = subStateKeys . map ( subStateKey => this . getStateNode ( subStateKey ) ) ;
642
+ const subStateNodes : Array < StateNode <
643
+ TContext ,
644
+ any ,
645
+ TEvent
646
+ > > = subStateKeys . map ( subStateKey => this . getStateNode ( subStateKey ) ) ;
648
647
649
648
return subStateNodes . concat (
650
- subStateKeys . reduce (
651
- ( allSubStateNodes , subStateKey ) => {
652
- const subStateNode = this . getStateNode ( subStateKey ) . getStateNodes (
653
- stateValue [ subStateKey ]
654
- ) ;
649
+ subStateKeys . reduce ( ( allSubStateNodes , subStateKey ) => {
650
+ const subStateNode = this . getStateNode ( subStateKey ) . getStateNodes (
651
+ stateValue [ subStateKey ]
652
+ ) ;
655
653
656
- return allSubStateNodes . concat ( subStateNode ) ;
657
- } ,
658
- [ ] as Array < StateNode < TContext , any , TEvent > >
659
- )
654
+ return allSubStateNodes . concat ( subStateNode ) ;
655
+ } , [ ] as Array < StateNode < TContext , any , TEvent > > )
660
656
) ;
661
657
}
662
658
@@ -995,6 +991,10 @@ class StateNode<
995
991
996
992
const parent = sn . parent ! ;
997
993
994
+ if ( ! parent . parent ) {
995
+ return events ;
996
+ }
997
+
998
998
events . push (
999
999
done ( sn . id , sn . data ) , // TODO: deprecate - final states should not emit done events for their own state.
1000
1000
done (
@@ -1003,17 +1003,15 @@ class StateNode<
1003
1003
)
1004
1004
) ;
1005
1005
1006
- if ( parent . parent ) {
1007
- const grandparent = parent . parent ;
1006
+ const grandparent = parent . parent ! ;
1008
1007
1009
- if ( grandparent . type === 'parallel' ) {
1010
- if (
1011
- getChildren ( grandparent ) . every ( parentNode =>
1012
- isInFinalState ( transition . configuration , parentNode )
1013
- )
1014
- ) {
1015
- events . push ( done ( grandparent . id , grandparent . data ) ) ;
1016
- }
1008
+ if ( grandparent . type === 'parallel' ) {
1009
+ if (
1010
+ getChildren ( grandparent ) . every ( parentNode =>
1011
+ isInFinalState ( transition . configuration , parentNode )
1012
+ )
1013
+ ) {
1014
+ events . push ( done ( grandparent . id , grandparent . data ) ) ;
1017
1015
}
1018
1016
}
1019
1017
@@ -1268,15 +1266,12 @@ class StateNode<
1268
1266
? currentState . configuration
1269
1267
: [ ] ;
1270
1268
1271
- const meta = resolvedConfiguration . reduce (
1272
- ( acc , stateNode ) => {
1273
- if ( stateNode . meta !== undefined ) {
1274
- acc [ stateNode . id ] = stateNode . meta ;
1275
- }
1276
- return acc ;
1277
- } ,
1278
- { } as Record < string , string >
1279
- ) ;
1269
+ const meta = resolvedConfiguration . reduce ( ( acc , stateNode ) => {
1270
+ if ( stateNode . meta !== undefined ) {
1271
+ acc [ stateNode . id ] = stateNode . meta ;
1272
+ }
1273
+ return acc ;
1274
+ } , { } as Record < string , string > ) ;
1280
1275
1281
1276
const isDone = isInFinalState ( resolvedConfiguration , this ) ;
1282
1277
@@ -1749,9 +1744,10 @@ class StateNode<
1749
1744
: parent . initialStateNodes ;
1750
1745
}
1751
1746
1752
- const subHistoryValue = nestedPath < HistoryValue > ( parent . path , 'states' ) (
1753
- historyValue
1754
- ) . current ;
1747
+ const subHistoryValue = nestedPath < HistoryValue > (
1748
+ parent . path ,
1749
+ 'states'
1750
+ ) ( historyValue ) . current ;
1755
1751
1756
1752
if ( isString ( subHistoryValue ) ) {
1757
1753
return [ parent . getStateNode ( subHistoryValue ) ] ;
@@ -1903,11 +1899,9 @@ class StateNode<
1903
1899
return transition ;
1904
1900
}
1905
1901
private formatTransitions ( ) : Array < TransitionDefinition < TContext , TEvent > > {
1906
- let onConfig : Array <
1907
- TransitionConfig < TContext , EventObject > & {
1908
- event : string ;
1909
- }
1910
- > ;
1902
+ let onConfig : Array < TransitionConfig < TContext , EventObject > & {
1903
+ event : string ;
1904
+ } > ;
1911
1905
1912
1906
if ( ! this . config . on ) {
1913
1907
onConfig = [ ] ;
@@ -1932,11 +1926,14 @@ class StateNode<
1932
1926
return arrayified ;
1933
1927
} )
1934
1928
. concat (
1935
- toTransitionConfigArray ( WILDCARD , wildcardConfigs as SingleOrArray <
1936
- TransitionConfig < TContext , EventObject > & {
1937
- event : '*' ;
1938
- }
1939
- > )
1929
+ toTransitionConfigArray (
1930
+ WILDCARD ,
1931
+ wildcardConfigs as SingleOrArray <
1932
+ TransitionConfig < TContext , EventObject > & {
1933
+ event : '*' ;
1934
+ }
1935
+ >
1936
+ )
1940
1937
)
1941
1938
) ;
1942
1939
}
0 commit comments