_ _ t e s t s _ _ U s e r A c t i o n s . j s / a p i / _ _ t e s t s _ _ E x t e r n a l W e b A P I . j s / c o m p o n e n t s / _ _ t e s t s _ _ U s e r P a g e . j s / s t o r e s / _ _ t e s t s _ _ U s e r S t o r e . j s A p p D i s p a t c h e r . j s C o n s t a n t s . j s i n d e x . j s 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 0 6 . 0 7 . 0 8 . 0 9 . 1 0 . 1 1 . 1 2 . 1 3 . 1 4 . 1 5 . 13
r e q u i r e (" f l u x ") ; v a r D i s p a t c h e r = n e w F l u x . D i s p a t c h e r ( ) ; D i s p a t c h e r .d i s p a t c h(a c t i o n) ; D i s p a t c h e r .r e g i s t e r(a c t i o n = > . . .) ; 0 1 . 0 2 . 0 1 . 0 2 . 18
M _ A D D E D _ I N _ C A R D d a t a: { i d : " 0 3 d f 5 a c " , n a m e : " T h e S h a w s h a n k R e d e m p t i o n " . . . } } 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 0 6 . 0 7 . 0 8 . 20
_ A D D E D _ I N _ C A R D = " I T E M _ A D D E D _ I N _ C A R D " ; • Constants not required, but recommended • Identifiers • Semantic matters • Past tense • Only in domain-related names • Passive voice if possible 21
D _ S P I N N E R O P E N _ M O D A L C R E A T E _ T O D O L O A D _ U S E R S U P D A T E _ S O M E _ B U L L S H I T 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 22
A T E D D E P O S I T E D _ I N T O _ A C C O U N T W I T H D R A W A L _ F A I L E D T O K E N _ R E C E I V E D U S E R _ I N F O _ U P D A T E D 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 23
s p a t c h e r , { g e t I n i t i a l S t a t e ( ) { r e t u r n { . . . }; } , [ I T E M _ A D D E D ] ( s t a t e , a c t i o n ) { r e t u r n n e w S t a t e; } [ I T E M _ R E M O V E D ] ( s t a t e , a c t i o n ) { r e t u r n n e w S t a t e; } } ) ; 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 26
u n c t i o n a d d I t e m I n C a r d( i t e m ) { D i s p a t c h e r . d i s p a t c h ( { t y p e : I T E M _ A D D E D _ I N _ C A R D d a t a : i t e m } ) ; } 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 0 6 . 28
with world • Server requests • Devices and env-related API • Can be both async and sync • Async API is recommended (callbacks, observables, promises) 29
u n c t i o n p r o j e c t s( t o k e n , p r o j e c t I d ) { r e t u r n f e t c h( " / p r o j e c t s / " " + p r o j e c t I d , { h e a d e r s : { A u t h o r i z a t i o n : " T o k e n " + t o k e n } } ) ; } 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 0 6 . 0 7 . 30
n l o a d P r o j e c t s ( t o k e n , i d ) { r e t u r n W e b A P I . p r o j e c t s ( t o k e n , i d ) . t h e n ( d a t a = > d i s p a t c h ( { t y p e : P R O J E C T S _ L O A D E D , d a t a } ) , e r r o r = > d i s p a t c h ( { t y p e : P R O J E C T S _ L O A D _ F A I L E D , e r r o r ) ; } 0 1 . 0 2 . 0 3 . 0 4 . 0 5 . 0 6 . 31