@@ -12,17 +12,20 @@ export const getCounter = area => counter[area];
1212
1313export const trackPromise = ( promise , area ) => {
1414 area = area || defaultArea ;
15- incrementCounter ( area ) ;
16-
17- const promiseInProgress = anyPromiseInProgress ( area ) ;
18- emitter . emit ( promiseCounterUpdateEventId , promiseInProgress , area ) ;
15+ incrementPromiseCounter ( area ) ;
1916
2017 const onResolveHandler = ( ) => decrementPromiseCounter ( area ) ;
2118 promise . then ( onResolveHandler , onResolveHandler ) ;
2219
2320 return promise ;
2421} ;
2522
23+ const incrementPromiseCounter = area => {
24+ incrementCounter ( area ) ;
25+ const promiseInProgress = anyPromiseInProgress ( area ) ;
26+ emitter . emit ( promiseCounterUpdateEventId , promiseInProgress , area ) ;
27+ } ;
28+
2629const incrementCounter = area => {
2730 if ( Boolean ( counter [ area ] ) ) {
2831 counter [ area ] ++ ;
@@ -34,7 +37,7 @@ const incrementCounter = area => {
3437const anyPromiseInProgress = area => counter [ area ] > 0 ;
3538
3639const decrementPromiseCounter = area => {
37- decrementCounter ( area ) ;
40+ counter [ area ] > 0 && decrementCounter ( area ) ;
3841 const promiseInProgress = anyPromiseInProgress ( area ) ;
3942 emitter . emit ( promiseCounterUpdateEventId , promiseInProgress , area ) ;
4043} ;
@@ -43,5 +46,20 @@ const decrementCounter = area => {
4346 counter [ area ] -- ;
4447} ;
4548
49+ export const manuallyResetPromiseCounter = area => {
50+ area = area || defaultArea ;
51+ counter [ area ] = 0 ;
52+ emitter . emit ( promiseCounterUpdateEventId , false , area ) ;
53+ } ;
54+
55+ export const manuallyDecrementPromiseCounter = area => {
56+ area = area || defaultArea ;
57+ decrementPromiseCounter ( area ) ;
58+ } ;
59+
60+ export const manuallyIncrementPromiseCounter = area => {
61+ area = area || defaultArea ;
62+ incrementPromiseCounter ( area ) ;
63+ } ;
4664// TODO: Enhancement we could catch here errors and throw an Event in case there's an HTTP Error
4765// then the consumer of this event can be listening and decide what to to in case of error
0 commit comments