@@ -23,30 +23,30 @@ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> AppActi
2323 < div class ='clearfix '>
2424
2525 < div class ='fl pad1y space-right2 '>
26- < span class ="strong "> 78.79 % </ span >
26+ < span class ="strong "> 86.11 % </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 26/33 </ span >
28+ < span class ='fraction '> 31/36 </ span >
2929 </ div >
3030
3131
3232 < div class ='fl pad1y space-right2 '>
33- < span class ="strong "> 50 % </ span >
33+ < span class ="strong "> 60 % </ span >
3434 < span class ="quiet "> Branches</ span >
35- < span class ='fraction '> 2/4 </ span >
35+ < span class ='fraction '> 3/5 </ span >
3636 </ div >
3737
3838
3939 < div class ='fl pad1y space-right2 '>
40- < span class ="strong "> 64.29 % </ span >
40+ < span class ="strong "> 78.57 % </ span >
4141 < span class ="quiet "> Functions</ span >
42- < span class ='fraction '> 9 /14</ span >
42+ < span class ='fraction '> 11 /14</ span >
4343 </ div >
4444
4545
4646 < div class ='fl pad1y space-right2 '>
47- < span class ="strong "> 78.13 % </ span >
47+ < span class ="strong "> 85.71 % </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 25/32 </ span >
49+ < span class ='fraction '> 30/35 </ span >
5050 </ div >
5151
5252
@@ -61,7 +61,7 @@ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> AppActi
6161 </ div >
6262 </ template >
6363 </ div >
64- < div class ='status-line medium '> </ div >
64+ < div class ='status-line high '> </ div >
6565 < pre > < table class ="coverage ">
6666< tr > < td class ="line-count quiet "> < a name ='L1 '> </ a > < a href ='#L1 '> 1</ a >
6767< a name ='L2 '> </ a > < a href ='#L2 '> 2</ a >
@@ -143,7 +143,13 @@ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> AppActi
143143< a name ='L78 '> </ a > < a href ='#L78 '> 78</ a >
144144< a name ='L79 '> </ a > < a href ='#L79 '> 79</ a >
145145< a name ='L80 '> </ a > < a href ='#L80 '> 80</ a >
146- < a name ='L81 '> </ a > < a href ='#L81 '> 81</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-neutral "> </ span >
146+ < a name ='L81 '> </ a > < a href ='#L81 '> 81</ a >
147+ < a name ='L82 '> </ a > < a href ='#L82 '> 82</ a >
148+ < a name ='L83 '> </ a > < a href ='#L83 '> 83</ a >
149+ < a name ='L84 '> </ a > < a href ='#L84 '> 84</ a >
150+ < a name ='L85 '> </ a > < a href ='#L85 '> 85</ a >
151+ < a name ='L86 '> </ a > < a href ='#L86 '> 86</ a >
152+ < a name ='L87 '> </ a > < a href ='#L87 '> 87</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-neutral "> </ span >
147153< span class ="cline-any cline-neutral "> </ span >
148154< span class ="cline-any cline-neutral "> </ span >
149155< span class ="cline-any cline-yes "> 7x</ span >
@@ -155,6 +161,8 @@ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> AppActi
155161< span class ="cline-any cline-neutral "> </ span >
156162< span class ="cline-any cline-neutral "> </ span >
157163< span class ="cline-any cline-neutral "> </ span >
164+ < span class ="cline-any cline-neutral "> </ span >
165+ < span class ="cline-any cline-neutral "> </ span >
158166< span class ="cline-any cline-yes "> 38x</ span >
159167< span class ="cline-any cline-yes "> 38x</ span >
160168< span class ="cline-any cline-yes "> 38x</ span >
@@ -166,7 +174,7 @@ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> AppActi
166174< span class ="cline-any cline-neutral "> </ span >
167175< span class ="cline-any cline-neutral "> </ span >
168176< span class ="cline-any cline-neutral "> </ span >
169- < span class ="cline-any cline-no " > </ span >
177+ < span class ="cline-any cline-yes " > 1x </ span >
170178< span class ="cline-any cline-neutral "> </ span >
171179< span class ="cline-any cline-neutral "> </ span >
172180< span class ="cline-any cline-neutral "> </ span >
@@ -208,13 +216,17 @@ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> AppActi
208216< span class ="cline-any cline-yes "> 33x</ span >
209217< span class ="cline-any cline-neutral "> </ span >
210218< span class ="cline-any cline-yes "> 99x</ span >
219+ < span class ="cline-any cline-yes "> 33x</ span >
220+ < span class ="cline-any cline-yes "> 33x</ span >
221+ < span class ="cline-any cline-neutral "> </ span >
222+ < span class ="cline-any cline-yes "> 66x</ span >
211223< span class ="cline-any cline-neutral "> </ span >
212224< span class ="cline-any cline-neutral "> </ span >
213225< span class ="cline-any cline-yes "> 33x</ span >
214226< span class ="cline-any cline-yes "> 9x</ span >
215227< span class ="cline-any cline-neutral "> </ span >
216228< span class ="cline-any cline-yes "> 33x</ span >
217- < span class ="cline-any cline-no " > </ span >
229+ < span class ="cline-any cline-yes " > 1x </ span >
218230< span class ="cline-any cline-neutral "> </ span >
219231< span class ="cline-any cline-yes "> 33x</ span >
220232< span class ="cline-any cline-yes "> 15x</ span >
@@ -226,30 +238,32 @@ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> AppActi
226238< span class ="cline-any cline-neutral "> </ span > </ td > < td class ="text "> < pre class ="prettyprint lang-js "> import { Container, IHaveDependencies } from '../../cheap-di';
227239import { Action, ActionMaybeWithContainer, ActionFactory } from './types';
228240
229- export class AppAction<TPayload = any > implements ActionMaybeWithContainer<TPayload > {
241+ export class AppAction<Payload = undefined > implements ActionMaybeWithContainer<Payload > {
230242 type: any;
231- payload: TPayload ;
243+ payload: Payload ;
232244
233245 readonly actions: (Action | ActionFactory)[];
234- stopPropagation?: boolean;
246+
247+ stopPropagation: boolean;
248+
235249 container?: Container & IHaveDependencies;
236250
237- constructor(type: string, payload?: TPayload ) {
251+ constructor(type: string, payload?: Payload ) {
238252 this.type = type;
239- this.payload = payload as TPayload ;
253+ this.payload = payload as Payload ;
240254 this.actions = [];
241255 this.stopPropagation = false;
242256 }
243257
244- static addNextActions(appAction: Action, ...actions: (Action | ActionFactory)[]) {
258+ static addNextActions<Payload> (appAction: Action<Payload> , ...actions: (Action | ActionFactory)[]) {
245259 appAction.actions.push(...actions);
246260 }
247261
248- < span class =" fstat-no " title =" function not covered " > static </ span > stop(appAction: Action): void {
249- < span class =" cstat-no " title =" statement not covered " > appAction.stopPropagation = true;</ span >
262+ static stop<Payload> (appAction: Action<Payload> ): void {
263+ ( appAction as AppAction<Payload>) .stopPropagation = true;
250264 }
251265
252- static getActions(appAction: Action): ActionFactory[] {
266+ static getActions<Payload> (appAction: Action<Payload> ): ActionFactory[] {
253267 < span class ="missing-if-branch " title ="if path not taken " > I</ span > if (!Array.isArray(appAction.actions)) {
254268< span class ="cstat-no " title ="statement not covered " > return [];</ span >
255269 }
@@ -274,9 +288,9 @@ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> AppActi
274288< span class ="cstat-no " title ="statement not covered " > return AppAction.getActions(this);</ span >
275289 }
276290
277- toPlainObject(): Action {
278- const keys = Object.keys(this) as (keyof AppAction)[];
279- const plainObject = {} as Action;
291+ toPlainObject(): Action<Payload> {
292+ const keys = Object.keys(this) as (keyof AppAction<Payload> )[];
293+ const plainObject = {} as Action<Payload> ;
280294
281295 keys.forEach((key) => {
282296 // skip property
@@ -287,14 +301,18 @@ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> AppActi
287301 plainObject[key as any] = this[key];
288302 return;
289303 }
304+ if (key === 'stopPropagation') {
305+ plainObject[key as any] = this[key];
306+ return;
307+ }
290308 plainObject[key] = this[key];
291309 });
292310
293311 plainObject.addNextActions = function (...actions: Action[]) {
294312 AppAction.addNextActions(this, ...actions);
295313 };
296- plainObject.stop = < span class =" fstat-no " title =" function not covered " > function () {</ span >
297- < span class =" cstat-no " title =" statement not covered " > AppAction.stop(this);</ span >
314+ plainObject.stop = function () {
315+ AppAction.stop(this);
298316 };
299317 plainObject.getActions = function () {
300318 return AppAction.getActions(this);
@@ -310,7 +328,7 @@ <h1><a href="../index.html">All files</a> / <a href="index.html">src</a> AppActi
310328 < div class ='footer quiet pad2 space-top1 center small '>
311329 Code coverage generated by
312330 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
313- at Tue Jan 03 2023 12:52:22 GMT+0100 (Central European Standard Time)
331+ at Tue Jan 03 2023 23:18:07 GMT+0100 (Central European Standard Time)
314332 </ div >
315333 < script src ="../prettify.js "> </ script >
316334 < script >
0 commit comments