@peter.naydenov/fsm 3.0.0 → 4.0.1
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 +20 -1
- package/coverage/lcov-report/block-navigation.js +8 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +34 -29
- 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 +22 -17
- package/coverage/lcov-report/src/index.js.html +42 -52
- 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 +23 -18
- 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 +30 -34
- package/coverage/lcov-report/src/methods/exportState.js.html +25 -20
- 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 +29 -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 +22 -14
- 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 +400 -228
- package/coverage/tmp/coverage-29775-1668580484020-0.json +1 -0
- package/package.json +8 -7
- package/src/index.js +10 -15
- 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 -2
- package/src/methods/_triggerCacheUpdate.js +1 -1
- package/src/methods/_updateStep.js +1 -1
- package/src/methods/_warn.js +4 -7
- package/src/methods/exportState.js +2 -2
- package/src/methods/getState.js +1 -1
- package/src/methods/ignoreCacheUpdates.js +1 -1
- package/src/methods/importState.js +5 -4
- 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 +3 -2
- package/src/methods/setDependencies.js +2 -1
- package/src/methods/update.js +1 -1
- package/.nyc_output/4a8b551d-193d-40e4-b4cf-69d27eebf18e.json +0 -1
- package/.nyc_output/processinfo/4a8b551d-193d-40e4-b4cf-69d27eebf18e.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,18 +410,34 @@ So... about changes:
|
|
|
407
410
|
|
|
408
411
|
## Release History
|
|
409
412
|
|
|
413
|
+
|
|
414
|
+
### 4.0.1 ( 2022-11-16)
|
|
415
|
+
- [x] Walk was removed. Generates a lot of problems with objects in stateData(HTMLElement, Date, URL). StateData is using a shallow copy. Developer should take care of immutability himself;
|
|
416
|
+
|
|
417
|
+
### 4.0.0 (2022-11-15)
|
|
418
|
+
- [x] The library become a ES module;
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
|
|
410
422
|
### 3.0.0 (2022-10-14)
|
|
411
423
|
- [x] Dependency "@peter.naydenov/walk" was upgraded to version 3.0.0;
|
|
412
424
|
|
|
425
|
+
|
|
426
|
+
|
|
413
427
|
### 2.2.4 ( 2022-05-27 )
|
|
414
428
|
- [x] New dependency was added - walk ("@peter.naydenov/walk");
|
|
415
429
|
- [x] "Walk" is loaded by default in fsm dependency object;
|
|
416
430
|
- [x] "Ask-for-promise" is loaded by default in fsm dependency object;
|
|
417
431
|
- [x] Deep copy for stateData on each update with "walk" library;
|
|
418
432
|
|
|
433
|
+
|
|
434
|
+
|
|
419
435
|
### 2.2.3 ( 2021-04-02 )
|
|
420
436
|
- [x] Fix: Duplicated update callback if logic contain a chainAction;
|
|
421
437
|
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
|
|
422
441
|
### 2.2.2 ( 2021-03-26 )
|
|
423
442
|
- [x] Internal code refactoring;
|
|
424
443
|
- [ ] 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">97.48% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>349/358</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.77% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>90/93</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'>19/19</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">97.48% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>349/358</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="95.83" class="pct high">95.83%</td>
|
|
81
|
-
<td data-value="24" class="abs high">23/24</td>
|
|
82
|
-
<td data-value="85.71" class="pct high">85.71%</td>
|
|
83
|
-
<td data-value="7" class="abs high">6/7</td>
|
|
84
86
|
<td data-value="100" class="pct high">100%</td>
|
|
85
|
-
<td data-value="
|
|
87
|
+
<td data-value="39" class="abs high">39/39</td>
|
|
88
|
+
<td data-value="83.33" class="pct high">83.33%</td>
|
|
89
|
+
<td data-value="6" class="abs high">5/6</td>
|
|
90
|
+
<td data-value="100" class="pct high">100%</td>
|
|
91
|
+
<td data-value="1" class="abs high">1/1</td>
|
|
86
92
|
<td data-value="100" class="pct high">100%</td>
|
|
87
|
-
<td data-value="
|
|
93
|
+
<td data-value="39" class="abs high">39/39</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="97.17" class="pic high">
|
|
99
|
+
<div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></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="97.17" class="pct high">97.17%</td>
|
|
102
|
+
<td data-value="319" class="abs high">310/319</td>
|
|
103
|
+
<td data-value="97.7" class="pct high">97.7%</td>
|
|
104
|
+
<td data-value="87" class="abs high">85/87</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="97.17" class="pct high">97.17%</td>
|
|
108
|
+
<td data-value="319" class="abs high">310/319</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-16T06:34:44.092Z
|
|
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,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">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>39/39</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
|
|
|
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'>39/39</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="95.83" class="pct high">95.83%</td>
|
|
81
|
-
<td data-value="24" class="abs high">23/24</td>
|
|
82
|
-
<td data-value="85.71" class="pct high">85.71%</td>
|
|
83
|
-
<td data-value="7" class="abs high">6/7</td>
|
|
84
86
|
<td data-value="100" class="pct high">100%</td>
|
|
85
|
-
<td data-value="
|
|
87
|
+
<td data-value="39" class="abs high">39/39</td>
|
|
88
|
+
<td data-value="83.33" class="pct high">83.33%</td>
|
|
89
|
+
<td data-value="6" class="abs high">5/6</td>
|
|
86
90
|
<td data-value="100" class="pct high">100%</td>
|
|
87
|
-
<td data-value="
|
|
91
|
+
<td data-value="1" class="abs high">1/1</td>
|
|
92
|
+
<td data-value="100" class="pct high">100%</td>
|
|
93
|
+
<td data-value="39" class="abs high">39/39</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-16T06:34:44.092Z
|
|
99
105
|
</div>
|
|
100
|
-
</div>
|
|
101
106
|
<script src="../prettify.js"></script>
|
|
102
107
|
<script>
|
|
103
108
|
window.onload = function () {
|
|
@@ -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">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>39/39</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
|
|
|
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'>39/39</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">
|
|
@@ -98,64 +104,52 @@
|
|
|
98
104
|
<a name='L39'></a><a href='#L39'>39</a>
|
|
99
105
|
<a name='L40'></a><a href='#L40'>40</a>
|
|
100
106
|
<a name='L41'></a><a href='#L41'>41</a>
|
|
101
|
-
<a name='L42'></a><a href='#L42'>42</a>
|
|
102
|
-
<
|
|
103
|
-
<a name='L44'></a><a href='#L44'>44</a>
|
|
104
|
-
<a name='L45'></a><a href='#L45'>45</a>
|
|
105
|
-
<a name='L46'></a><a href='#L46'>46</a>
|
|
106
|
-
<a name='L47'></a><a href='#L47'>47</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
107
|
-
<span class="cline-any cline-neutral"> </span>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
108
|
+
<span class="cline-any cline-yes">1x</span>
|
|
108
109
|
<span class="cline-any cline-yes">1x</span>
|
|
109
110
|
<span class="cline-any cline-yes">1x</span>
|
|
110
111
|
<span class="cline-any cline-yes">1x</span>
|
|
111
112
|
<span class="cline-any cline-yes">1x</span>
|
|
112
|
-
<span class="cline-any cline-neutral"> </span>
|
|
113
|
-
<span class="cline-any cline-neutral"> </span>
|
|
114
|
-
<span class="cline-any cline-neutral"> </span>
|
|
115
113
|
<span class="cline-any cline-yes">17x</span>
|
|
116
|
-
<span class="cline-any cline-neutral"> </span>
|
|
117
114
|
<span class="cline-any cline-yes">17x</span>
|
|
118
115
|
<span class="cline-any cline-yes">17x</span>
|
|
119
116
|
<span class="cline-any cline-yes">17x</span>
|
|
120
117
|
<span class="cline-any cline-yes">17x</span>
|
|
121
118
|
<span class="cline-any cline-yes">17x</span>
|
|
122
119
|
<span class="cline-any cline-yes">17x</span>
|
|
123
|
-
<span class="cline-any cline-neutral"> </span>
|
|
124
120
|
<span class="cline-any cline-yes">17x</span>
|
|
125
121
|
<span class="cline-any cline-yes">17x</span>
|
|
126
122
|
<span class="cline-any cline-yes">17x</span>
|
|
127
123
|
<span class="cline-any cline-yes">17x</span>
|
|
128
|
-
<span class="cline-any cline-neutral"> </span>
|
|
129
|
-
<span class="cline-any cline-neutral"> </span>
|
|
130
|
-
<span class="cline-any cline-neutral"> </span>
|
|
131
|
-
<span class="cline-any cline-neutral"> </span>
|
|
132
|
-
<span class="cline-any cline-neutral"> </span>
|
|
133
|
-
<span class="cline-any cline-neutral"> </span>
|
|
134
124
|
<span class="cline-any cline-yes">17x</span>
|
|
135
|
-
<span class="cline-any cline-
|
|
125
|
+
<span class="cline-any cline-yes">17x</span>
|
|
126
|
+
<span class="cline-any cline-yes">17x</span>
|
|
127
|
+
<span class="cline-any cline-yes">17x</span>
|
|
128
|
+
<span class="cline-any cline-yes">17x</span>
|
|
129
|
+
<span class="cline-any cline-yes">17x</span>
|
|
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">272x</span>
|
|
136
134
|
<span class="cline-any cline-yes">272x</span>
|
|
137
|
-
<span class="cline-any cline-neutral"> </span>
|
|
138
|
-
<span class="cline-any cline-neutral"> </span>
|
|
139
135
|
<span class="cline-any cline-yes">17x</span>
|
|
140
136
|
<span class="cline-any cline-yes">17x</span>
|
|
141
137
|
<span class="cline-any cline-yes">17x</span>
|
|
142
138
|
<span class="cline-any cline-yes">17x</span>
|
|
143
139
|
<span class="cline-any cline-yes">17x</span>
|
|
144
|
-
<span class="cline-any cline-
|
|
145
|
-
<span class="cline-any cline-
|
|
146
|
-
<span class="cline-any cline-
|
|
147
|
-
<span class="cline-any cline-
|
|
148
|
-
<span class="cline-any cline-
|
|
140
|
+
<span class="cline-any cline-yes">17x</span>
|
|
141
|
+
<span class="cline-any cline-yes">1x</span>
|
|
142
|
+
<span class="cline-any cline-yes">1x</span>
|
|
143
|
+
<span class="cline-any cline-yes">1x</span>
|
|
144
|
+
<span class="cline-any cline-yes">1x</span>
|
|
149
145
|
<span class="cline-any cline-yes">1x</span>
|
|
150
146
|
<span class="cline-any cline-neutral"> </span>
|
|
151
147
|
<span class="cline-any cline-neutral"> </span>
|
|
152
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
, walk = require ( '@peter.naydenov/walk' )
|
|
158
|
-
;
|
|
148
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import walk from '@peter.naydenov/walk'
|
|
149
|
+
import methods from './methods/index.js'
|
|
150
|
+
import askForPromise from 'ask-for-promise'
|
|
151
|
+
|
|
152
|
+
const MISSING_STATE = 'N/A';
|
|
159
153
|
|
|
160
154
|
function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
161
155
|
const fsm = this;
|
|
@@ -165,10 +159,9 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
|
165
159
|
fsm.lock = false // switch 'ON' during transition in progress. Write other updates in cache.
|
|
166
160
|
fsm.cache = [] // cached 'update' commands
|
|
167
161
|
fsm.askForPromise = askForPromise
|
|
168
|
-
fsm.___walk = walk
|
|
169
162
|
|
|
170
|
-
fsm.stateData =
|
|
171
|
-
fsm.initialStateData =
|
|
163
|
+
fsm.stateData = { ...stateData }
|
|
164
|
+
fsm.initialStateData = Object.freeze ({ ...stateData })
|
|
172
165
|
fsm.dependencies = { walk, askForPromise }
|
|
173
166
|
fsm.callback = {
|
|
174
167
|
update : []
|
|
@@ -177,13 +170,12 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
|
177
170
|
, negative : []
|
|
178
171
|
}
|
|
179
172
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
})
|
|
173
|
+
for ( let k in methods ) {
|
|
174
|
+
fsm[k] = methods[k](fsm)
|
|
175
|
+
}
|
|
184
176
|
|
|
185
177
|
const {transitions, nextState, chainActions } = fsm._setTransitions ( table, lib );
|
|
186
|
-
|
|
178
|
+
if ( debug ) <span class="branch-0 cbranch-no" title="branch not covered" >fsm._warn ( transitions )</span>
|
|
187
179
|
fsm.transitions = transitions
|
|
188
180
|
fsm.nextState = nextState
|
|
189
181
|
fsm.chainActions = chainActions
|
|
@@ -191,8 +183,7 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
|
191
183
|
|
|
192
184
|
|
|
193
185
|
|
|
194
|
-
|
|
195
|
-
module.exports = Fsm
|
|
186
|
+
export default Fsm
|
|
196
187
|
|
|
197
188
|
|
|
198
189
|
</pre></td></tr></table></pre>
|
|
@@ -201,10 +192,9 @@ module.exports = Fsm
|
|
|
201
192
|
</div><!-- /wrapper -->
|
|
202
193
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
203
194
|
Code coverage generated by
|
|
204
|
-
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
205
|
-
at
|
|
195
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
196
|
+
at 2022-11-16T06:34:44.092Z
|
|
206
197
|
</div>
|
|
207
|
-
</div>
|
|
208
198
|
<script src="../prettify.js"></script>
|
|
209
199
|
<script>
|
|
210
200
|
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-16T06:34:44.092Z
|
|
101
107
|
</div>
|
|
102
|
-
</div>
|
|
103
108
|
<script src="../../prettify.js"></script>
|
|
104
109
|
<script>
|
|
105
110
|
window.onload = function () {
|