@peter.naydenov/fsm 2.2.4 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nyc_output/a30c62b8-a571-43ac-a0aa-a56520c8ba67.json +1 -0
- package/.nyc_output/processinfo/a30c62b8-a571-43ac-a0aa-a56520c8ba67.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/README.md +22 -2
- package/coverage/lcov-report/block-navigation.js +8 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +33 -28
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +26 -0
- package/coverage/lcov-report/src/index.html +20 -15
- package/coverage/lcov-report/src/index.js.html +49 -41
- package/coverage/lcov-report/src/methods/_getChain.js.html +18 -13
- package/coverage/lcov-report/src/methods/_onUpdateTask.js.html +24 -19
- package/coverage/lcov-report/src/methods/_setTransitions.js.html +39 -34
- package/coverage/lcov-report/src/methods/_transit.js.html +22 -20
- package/coverage/lcov-report/src/methods/_triggerCacheUpdate.js.html +21 -16
- package/coverage/lcov-report/src/methods/_updateStep.js.html +51 -46
- package/coverage/lcov-report/src/methods/_warn.js.html +37 -26
- package/coverage/lcov-report/src/methods/exportState.js.html +24 -22
- package/coverage/lcov-report/src/methods/getState.js.html +18 -13
- package/coverage/lcov-report/src/methods/ignoreCacheUpdates.js.html +19 -14
- package/coverage/lcov-report/src/methods/importState.js.html +23 -21
- package/coverage/lcov-report/src/methods/index.html +109 -104
- package/coverage/lcov-report/src/methods/index.js.html +53 -57
- package/coverage/lcov-report/src/methods/off.js.html +25 -20
- package/coverage/lcov-report/src/methods/on.js.html +21 -16
- package/coverage/lcov-report/src/methods/reset.js.html +18 -16
- package/coverage/lcov-report/src/methods/setDependencies.js.html +20 -12
- package/coverage/lcov-report/src/methods/update.js.html +22 -17
- package/coverage/lcov.info +396 -223
- package/coverage/tmp/coverage-25644-1668538233889-0.json +1 -0
- package/package.json +8 -8
- package/src/index.js +12 -11
- package/src/methods/_getChain.js +1 -1
- package/src/methods/_onUpdateTask.js +1 -1
- package/src/methods/_setTransitions.js +1 -1
- package/src/methods/_transit.js +2 -3
- package/src/methods/_triggerCacheUpdate.js +1 -1
- package/src/methods/_updateStep.js +1 -1
- package/src/methods/_warn.js +7 -5
- package/src/methods/exportState.js +2 -3
- package/src/methods/getState.js +1 -1
- package/src/methods/ignoreCacheUpdates.js +1 -1
- package/src/methods/importState.js +2 -3
- package/src/methods/index.js +17 -20
- package/src/methods/off.js +1 -1
- package/src/methods/on.js +1 -1
- package/src/methods/reset.js +2 -3
- package/src/methods/setDependencies.js +2 -1
- package/src/methods/update.js +1 -1
- package/.nyc_output/86959cba-5ea6-46d1-a68b-aa782a39cf80.json +0 -1
- package/.nyc_output/processinfo/86959cba-5ea6-46d1-a68b-aa782a39cf80.json +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"parent":null,"pid":25560,"argv":["/usr/local/bin/node","/Users/peternaydenov/Sites/git-fsm/node_modules/.bin/mocha","test"],"execArgv":[],"cwd":"/Users/peternaydenov/Sites/git-fsm","time":1668538171023,"ppid":25559,"coverageFilename":"/Users/peternaydenov/Sites/git-fsm/.nyc_output/a30c62b8-a571-43ac-a0aa-a56520c8ba67.json","externalId":"","uuid":"a30c62b8-a571-43ac-a0aa-a56520c8ba67","files":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"processes":{"
|
|
1
|
+
{"processes":{"a30c62b8-a571-43ac-a0aa-a56520c8ba67":{"parent":null,"children":[]}},"files":{},"externalIds":{}}
|
package/README.md
CHANGED
|
@@ -54,12 +54,15 @@ npm i @peter.naydenov/fsm
|
|
|
54
54
|
Add in your script:
|
|
55
55
|
|
|
56
56
|
```js
|
|
57
|
-
|
|
57
|
+
import Fsm from '@peter.naydenov/fsm'
|
|
58
58
|
// init new fsm:
|
|
59
59
|
const fsm = new Fsm ( machine, lib )
|
|
60
60
|
```
|
|
61
61
|
... where **machine** is fsm-description and **lib** is a transition-library.
|
|
62
62
|
|
|
63
|
+
If your project is commonJS, use a dynamic `import` function or use version v.3.0.0 or older.
|
|
64
|
+
|
|
65
|
+
|
|
63
66
|
|
|
64
67
|
## Fsm Description
|
|
65
68
|
Fsm description is an object that define fsm business logic. Every fsm description should contain **init** and **table** properties.:
|
|
@@ -407,15 +410,32 @@ So... about changes:
|
|
|
407
410
|
|
|
408
411
|
## Release History
|
|
409
412
|
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
### 4.0.0 (2022-11-15)
|
|
416
|
+
- [x] The library become a ES module;
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
### 3.0.0 (2022-10-14)
|
|
421
|
+
- [x] Dependency "@peter.naydenov/walk" was upgraded to version 3.0.0;
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
|
|
410
425
|
### 2.2.4 ( 2022-05-27 )
|
|
411
|
-
- [x] New dependency was added - walk ("@peter.naydenov/walk")
|
|
426
|
+
- [x] New dependency was added - walk ("@peter.naydenov/walk");
|
|
412
427
|
- [x] "Walk" is loaded by default in fsm dependency object;
|
|
413
428
|
- [x] "Ask-for-promise" is loaded by default in fsm dependency object;
|
|
414
429
|
- [x] Deep copy for stateData on each update with "walk" library;
|
|
415
430
|
|
|
431
|
+
|
|
432
|
+
|
|
416
433
|
### 2.2.3 ( 2021-04-02 )
|
|
417
434
|
- [x] Fix: Duplicated update callback if logic contain a chainAction;
|
|
418
435
|
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
|
|
419
439
|
### 2.2.2 ( 2021-03-26 )
|
|
420
440
|
- [x] Internal code refactoring;
|
|
421
441
|
- [ ] Bug: Duplicated update callback if logic contain a chainAction;
|
|
@@ -63,6 +63,14 @@ var jumpToCode = (function init() {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
return function jump(event) {
|
|
66
|
+
if (
|
|
67
|
+
document.getElementById('fileSearch') === document.activeElement &&
|
|
68
|
+
document.activeElement != null
|
|
69
|
+
) {
|
|
70
|
+
// if we're currently focused on the search input, we don't want to navigate
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
66
74
|
switch (event.which) {
|
|
67
75
|
case 78: // n
|
|
68
76
|
case 74: // j
|
|
Binary file
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">96.67% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>349/361</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">96.73% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>89/92</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>20/20</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">96.67% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>349/361</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -54,6 +54,12 @@
|
|
|
54
54
|
<p class="quiet">
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
57
63
|
</div>
|
|
58
64
|
<div class='status-line high'></div>
|
|
59
65
|
<div class="pad1">
|
|
@@ -74,32 +80,32 @@
|
|
|
74
80
|
</thead>
|
|
75
81
|
<tbody><tr>
|
|
76
82
|
<td class="file high" data-value="src"><a href="src/index.html">src</a></td>
|
|
77
|
-
<td data-value="
|
|
78
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
83
|
+
<td data-value="100" class="pic high">
|
|
84
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
79
85
|
</td>
|
|
80
|
-
<td data-value="
|
|
81
|
-
<td data-value="
|
|
82
|
-
<td data-value="
|
|
83
|
-
<td data-value="
|
|
86
|
+
<td data-value="100" class="pct high">100%</td>
|
|
87
|
+
<td data-value="41" class="abs high">41/41</td>
|
|
88
|
+
<td data-value="83.33" class="pct high">83.33%</td>
|
|
89
|
+
<td data-value="6" class="abs high">5/6</td>
|
|
84
90
|
<td data-value="100" class="pct high">100%</td>
|
|
85
91
|
<td data-value="2" class="abs high">2/2</td>
|
|
86
92
|
<td data-value="100" class="pct high">100%</td>
|
|
87
|
-
<td data-value="
|
|
93
|
+
<td data-value="41" class="abs high">41/41</td>
|
|
88
94
|
</tr>
|
|
89
95
|
|
|
90
96
|
<tr>
|
|
91
97
|
<td class="file high" data-value="src/methods"><a href="src/methods/index.html">src/methods</a></td>
|
|
92
|
-
<td data-value="
|
|
93
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
98
|
+
<td data-value="96.25" class="pic high">
|
|
99
|
+
<div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
|
|
94
100
|
</td>
|
|
95
|
-
<td data-value="
|
|
96
|
-
<td data-value="
|
|
97
|
-
<td data-value="
|
|
98
|
-
<td data-value="
|
|
99
|
-
<td data-value="
|
|
100
|
-
<td data-value="
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="
|
|
101
|
+
<td data-value="96.25" class="pct high">96.25%</td>
|
|
102
|
+
<td data-value="320" class="abs high">308/320</td>
|
|
103
|
+
<td data-value="97.67" class="pct high">97.67%</td>
|
|
104
|
+
<td data-value="86" class="abs high">84/86</td>
|
|
105
|
+
<td data-value="100" class="pct high">100%</td>
|
|
106
|
+
<td data-value="18" class="abs high">18/18</td>
|
|
107
|
+
<td data-value="96.25" class="pct high">96.25%</td>
|
|
108
|
+
<td data-value="320" class="abs high">308/320</td>
|
|
103
109
|
</tr>
|
|
104
110
|
|
|
105
111
|
</tbody>
|
|
@@ -109,10 +115,9 @@
|
|
|
109
115
|
</div><!-- /wrapper -->
|
|
110
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
111
117
|
Code coverage generated by
|
|
112
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
113
|
-
at
|
|
118
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
+
at 2022-11-15T18:50:33.953Z
|
|
114
120
|
</div>
|
|
115
|
-
</div>
|
|
116
121
|
<script src="prettify.js"></script>
|
|
117
122
|
<script>
|
|
118
123
|
window.onload = function () {
|
|
Binary file
|
|
@@ -24,6 +24,31 @@ var addSorting = (function() {
|
|
|
24
24
|
return getTableHeader().querySelectorAll('th')[n];
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
function onFilterInput() {
|
|
28
|
+
const searchValue = document.getElementById('fileSearch').value;
|
|
29
|
+
const rows = document.getElementsByTagName('tbody')[0].children;
|
|
30
|
+
for (let i = 0; i < rows.length; i++) {
|
|
31
|
+
const row = rows[i];
|
|
32
|
+
if (
|
|
33
|
+
row.textContent
|
|
34
|
+
.toLowerCase()
|
|
35
|
+
.includes(searchValue.toLowerCase())
|
|
36
|
+
) {
|
|
37
|
+
row.style.display = '';
|
|
38
|
+
} else {
|
|
39
|
+
row.style.display = 'none';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// loads the search box
|
|
45
|
+
function addSearchBox() {
|
|
46
|
+
var template = document.getElementById('filterTemplate');
|
|
47
|
+
var templateClone = template.content.cloneNode(true);
|
|
48
|
+
templateClone.getElementById('fileSearch').oninput = onFilterInput;
|
|
49
|
+
template.parentElement.appendChild(templateClone);
|
|
50
|
+
}
|
|
51
|
+
|
|
27
52
|
// loads all columns
|
|
28
53
|
function loadColumns() {
|
|
29
54
|
var colNodes = getTableHeader().querySelectorAll('th'),
|
|
@@ -162,6 +187,7 @@ var addSorting = (function() {
|
|
|
162
187
|
}
|
|
163
188
|
cols = loadColumns();
|
|
164
189
|
loadData();
|
|
190
|
+
addSearchBox();
|
|
165
191
|
addSortIndicators();
|
|
166
192
|
enableUI();
|
|
167
193
|
};
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>41/41</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">83.33% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>6
|
|
35
|
+
<span class='fraction'>5/6</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>41/41</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -54,6 +54,12 @@
|
|
|
54
54
|
<p class="quiet">
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
57
63
|
</div>
|
|
58
64
|
<div class='status-line high'></div>
|
|
59
65
|
<div class="pad1">
|
|
@@ -74,17 +80,17 @@
|
|
|
74
80
|
</thead>
|
|
75
81
|
<tbody><tr>
|
|
76
82
|
<td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
|
|
77
|
-
<td data-value="
|
|
78
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
83
|
+
<td data-value="100" class="pic high">
|
|
84
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
79
85
|
</td>
|
|
80
|
-
<td data-value="
|
|
81
|
-
<td data-value="
|
|
82
|
-
<td data-value="
|
|
83
|
-
<td data-value="
|
|
86
|
+
<td data-value="100" class="pct high">100%</td>
|
|
87
|
+
<td data-value="41" class="abs high">41/41</td>
|
|
88
|
+
<td data-value="83.33" class="pct high">83.33%</td>
|
|
89
|
+
<td data-value="6" class="abs high">5/6</td>
|
|
84
90
|
<td data-value="100" class="pct high">100%</td>
|
|
85
91
|
<td data-value="2" class="abs high">2/2</td>
|
|
86
92
|
<td data-value="100" class="pct high">100%</td>
|
|
87
|
-
<td data-value="
|
|
93
|
+
<td data-value="41" class="abs high">41/41</td>
|
|
88
94
|
</tr>
|
|
89
95
|
|
|
90
96
|
</tbody>
|
|
@@ -94,10 +100,9 @@
|
|
|
94
100
|
</div><!-- /wrapper -->
|
|
95
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
96
102
|
Code coverage generated by
|
|
97
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
98
|
-
at
|
|
103
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
+
at 2022-11-15T18:50:33.953Z
|
|
99
105
|
</div>
|
|
100
|
-
</div>
|
|
101
106
|
<script src="../prettify.js"></script>
|
|
102
107
|
<script>
|
|
103
108
|
window.onload = function () {
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>41/41</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">83.33% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>6
|
|
35
|
+
<span class='fraction'>5/6</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>41/41</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -54,6 +54,12 @@
|
|
|
54
54
|
<p class="quiet">
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
57
63
|
</div>
|
|
58
64
|
<div class='status-line high'></div>
|
|
59
65
|
<pre><table class="coverage">
|
|
@@ -99,55 +105,55 @@
|
|
|
99
105
|
<a name='L40'></a><a href='#L40'>40</a>
|
|
100
106
|
<a name='L41'></a><a href='#L41'>41</a>
|
|
101
107
|
<a name='L42'></a><a href='#L42'>42</a>
|
|
102
|
-
<a name='L43'></a><a href='#L43'>43</a
|
|
103
|
-
<span class="cline-any cline-
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
110
|
+
<span class="cline-any cline-yes">1x</span>
|
|
104
111
|
<span class="cline-any cline-yes">1x</span>
|
|
105
112
|
<span class="cline-any cline-yes">1x</span>
|
|
106
113
|
<span class="cline-any cline-yes">1x</span>
|
|
107
114
|
<span class="cline-any cline-yes">1x</span>
|
|
108
|
-
<span class="cline-any cline-neutral"> </span>
|
|
109
|
-
<span class="cline-any cline-neutral"> </span>
|
|
110
|
-
<span class="cline-any cline-neutral"> </span>
|
|
111
115
|
<span class="cline-any cline-yes">17x</span>
|
|
112
|
-
<span class="cline-any cline-neutral"> </span>
|
|
113
116
|
<span class="cline-any cline-yes">17x</span>
|
|
114
117
|
<span class="cline-any cline-yes">17x</span>
|
|
115
118
|
<span class="cline-any cline-yes">17x</span>
|
|
116
119
|
<span class="cline-any cline-yes">17x</span>
|
|
117
120
|
<span class="cline-any cline-yes">17x</span>
|
|
118
|
-
<span class="cline-any cline-neutral"> </span>
|
|
119
121
|
<span class="cline-any cline-yes">17x</span>
|
|
120
122
|
<span class="cline-any cline-yes">17x</span>
|
|
121
123
|
<span class="cline-any cline-yes">17x</span>
|
|
122
124
|
<span class="cline-any cline-yes">17x</span>
|
|
123
|
-
<span class="cline-any cline-neutral"> </span>
|
|
124
|
-
<span class="cline-any cline-neutral"> </span>
|
|
125
|
-
<span class="cline-any cline-neutral"> </span>
|
|
126
|
-
<span class="cline-any cline-neutral"> </span>
|
|
127
|
-
<span class="cline-any cline-neutral"> </span>
|
|
128
|
-
<span class="cline-any cline-neutral"> </span>
|
|
129
|
-
<span class="cline-any cline-yes">272x</span>
|
|
130
|
-
<span class="cline-any cline-neutral"> </span>
|
|
131
125
|
<span class="cline-any cline-yes">17x</span>
|
|
132
126
|
<span class="cline-any cline-yes">17x</span>
|
|
133
127
|
<span class="cline-any cline-yes">17x</span>
|
|
134
128
|
<span class="cline-any cline-yes">17x</span>
|
|
135
129
|
<span class="cline-any cline-yes">17x</span>
|
|
136
|
-
<span class="cline-any cline-
|
|
137
|
-
<span class="cline-any cline-
|
|
138
|
-
<span class="cline-any cline-
|
|
139
|
-
<span class="cline-any cline-
|
|
140
|
-
<span class="cline-any cline-
|
|
130
|
+
<span class="cline-any cline-yes">17x</span>
|
|
131
|
+
<span class="cline-any cline-yes">17x</span>
|
|
132
|
+
<span class="cline-any cline-yes">17x</span>
|
|
133
|
+
<span class="cline-any cline-yes">17x</span>
|
|
134
|
+
<span class="cline-any cline-yes">17x</span>
|
|
135
|
+
<span class="cline-any cline-yes">17x</span>
|
|
136
|
+
<span class="cline-any cline-yes">17x</span>
|
|
137
|
+
<span class="cline-any cline-yes">17x</span>
|
|
138
|
+
<span class="cline-any cline-yes">17x</span>
|
|
139
|
+
<span class="cline-any cline-yes">17x</span>
|
|
140
|
+
<span class="cline-any cline-yes">17x</span>
|
|
141
|
+
<span class="cline-any cline-yes">17x</span>
|
|
142
|
+
<span class="cline-any cline-yes">17x</span>
|
|
143
|
+
<span class="cline-any cline-yes">17x</span>
|
|
144
|
+
<span class="cline-any cline-yes">17x</span>
|
|
145
|
+
<span class="cline-any cline-yes">1x</span>
|
|
146
|
+
<span class="cline-any cline-yes">1x</span>
|
|
147
|
+
<span class="cline-any cline-yes">1x</span>
|
|
148
|
+
<span class="cline-any cline-yes">1x</span>
|
|
141
149
|
<span class="cline-any cline-yes">1x</span>
|
|
142
150
|
<span class="cline-any cline-neutral"> </span>
|
|
143
151
|
<span class="cline-any cline-neutral"> </span>
|
|
144
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
, walk = require ( '@peter.naydenov/walk' )
|
|
150
|
-
;
|
|
152
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import walk from '@peter.naydenov/walk'
|
|
153
|
+
import methods from './methods/index.js'
|
|
154
|
+
import askForPromise from 'ask-for-promise'
|
|
155
|
+
|
|
156
|
+
const MISSING_STATE = 'N/A';
|
|
151
157
|
|
|
152
158
|
function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
153
159
|
const fsm = this;
|
|
@@ -157,9 +163,10 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
|
157
163
|
fsm.lock = false // switch 'ON' during transition in progress. Write other updates in cache.
|
|
158
164
|
fsm.cache = [] // cached 'update' commands
|
|
159
165
|
fsm.askForPromise = askForPromise
|
|
166
|
+
fsm.___walk = walk
|
|
160
167
|
|
|
161
|
-
fsm.stateData = walk ( stateData )
|
|
162
|
-
fsm.initialStateData = walk ( stateData )
|
|
168
|
+
fsm.stateData = walk ({ data:stateData })
|
|
169
|
+
fsm.initialStateData = walk ({ data:stateData })
|
|
163
170
|
fsm.dependencies = { walk, askForPromise }
|
|
164
171
|
fsm.callback = {
|
|
165
172
|
update : []
|
|
@@ -168,10 +175,13 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
|
168
175
|
, negative : []
|
|
169
176
|
}
|
|
170
177
|
|
|
171
|
-
walk (
|
|
178
|
+
walk ({ // Attach methods to fsm
|
|
179
|
+
data:methods
|
|
180
|
+
, keyCallback : ({key:k}) => fsm[k] = methods[k](fsm)
|
|
181
|
+
})
|
|
172
182
|
|
|
173
183
|
const {transitions, nextState, chainActions } = fsm._setTransitions ( table, lib );
|
|
174
|
-
|
|
184
|
+
if ( debug ) <span class="branch-0 cbranch-no" title="branch not covered" >fsm._warn ( transitions )</span>
|
|
175
185
|
fsm.transitions = transitions
|
|
176
186
|
fsm.nextState = nextState
|
|
177
187
|
fsm.chainActions = chainActions
|
|
@@ -179,8 +189,7 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
|
179
189
|
|
|
180
190
|
|
|
181
191
|
|
|
182
|
-
|
|
183
|
-
module.exports = Fsm
|
|
192
|
+
export default Fsm
|
|
184
193
|
|
|
185
194
|
|
|
186
195
|
</pre></td></tr></table></pre>
|
|
@@ -189,10 +198,9 @@ module.exports = Fsm
|
|
|
189
198
|
</div><!-- /wrapper -->
|
|
190
199
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
191
200
|
Code coverage generated by
|
|
192
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
193
|
-
at
|
|
201
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
202
|
+
at 2022-11-15T18:50:33.953Z
|
|
194
203
|
</div>
|
|
195
|
-
</div>
|
|
196
204
|
<script src="../prettify.js"></script>
|
|
197
205
|
<script>
|
|
198
206
|
window.onload = function () {
|
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>9/9</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>5/5</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>1/1</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>9/9</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -54,6 +54,12 @@
|
|
|
54
54
|
<p class="quiet">
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
57
63
|
</div>
|
|
58
64
|
<div class='status-line high'></div>
|
|
59
65
|
<pre><table class="coverage">
|
|
@@ -68,14 +74,14 @@
|
|
|
68
74
|
<a name='L9'></a><a href='#L9'>9</a>
|
|
69
75
|
<a name='L10'></a><a href='#L10'>10</a>
|
|
70
76
|
<a name='L11'></a><a href='#L11'>11</a>
|
|
71
|
-
<a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
|
|
72
78
|
<span class="cline-any cline-yes">17x</span>
|
|
73
79
|
<span class="cline-any cline-yes">23x</span>
|
|
74
80
|
<span class="cline-any cline-yes">4x</span>
|
|
75
|
-
<span class="cline-any cline-
|
|
76
|
-
<span class="cline-any cline-
|
|
77
|
-
<span class="cline-any cline-
|
|
78
|
-
<span class="cline-any cline-
|
|
81
|
+
<span class="cline-any cline-yes">1x</span>
|
|
82
|
+
<span class="cline-any cline-yes">1x</span>
|
|
83
|
+
<span class="cline-any cline-yes">1x</span>
|
|
84
|
+
<span class="cline-any cline-yes">1x</span>
|
|
79
85
|
<span class="cline-any cline-yes">1x</span>
|
|
80
86
|
<span class="cline-any cline-neutral"> </span>
|
|
81
87
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -87,7 +93,7 @@ return function ( chainActions, key ) {
|
|
|
87
93
|
|
|
88
94
|
|
|
89
95
|
|
|
90
|
-
|
|
96
|
+
export default _getChain
|
|
91
97
|
|
|
92
98
|
|
|
93
99
|
</pre></td></tr></table></pre>
|
|
@@ -96,10 +102,9 @@ module.exports = _getChain
|
|
|
96
102
|
</div><!-- /wrapper -->
|
|
97
103
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
98
104
|
Code coverage generated by
|
|
99
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
100
|
-
at
|
|
105
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
106
|
+
at 2022-11-15T18:50:33.953Z
|
|
101
107
|
</div>
|
|
102
|
-
</div>
|
|
103
108
|
<script src="../../prettify.js"></script>
|
|
104
109
|
<script>
|
|
105
110
|
window.onload = function () {
|