@peter.naydenov/fsm 2.2.4 → 3.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/4a8b551d-193d-40e4-b4cf-69d27eebf18e.json +1 -0
- package/.nyc_output/processinfo/{86959cba-5ea6-46d1-a68b-aa782a39cf80.json → 4a8b551d-193d-40e4-b4cf-69d27eebf18e.json} +1 -1
- package/.nyc_output/processinfo/index.json +1 -1
- package/README.md +4 -1
- package/coverage/lcov-report/index.html +14 -14
- package/coverage/lcov-report/src/index.html +8 -8
- package/coverage/lcov-report/src/index.js.html +20 -8
- package/coverage/lcov-report/src/methods/_getChain.js.html +1 -1
- package/coverage/lcov-report/src/methods/_onUpdateTask.js.html +1 -1
- package/coverage/lcov-report/src/methods/_setTransitions.js.html +1 -1
- package/coverage/lcov-report/src/methods/_transit.js.html +5 -8
- package/coverage/lcov-report/src/methods/_triggerCacheUpdate.js.html +1 -1
- package/coverage/lcov-report/src/methods/_updateStep.js.html +1 -1
- package/coverage/lcov-report/src/methods/_warn.js.html +17 -11
- package/coverage/lcov-report/src/methods/exportState.js.html +5 -8
- package/coverage/lcov-report/src/methods/getState.js.html +1 -1
- package/coverage/lcov-report/src/methods/ignoreCacheUpdates.js.html +1 -1
- package/coverage/lcov-report/src/methods/importState.js.html +5 -8
- package/coverage/lcov-report/src/methods/index.html +19 -19
- package/coverage/lcov-report/src/methods/index.js.html +1 -1
- package/coverage/lcov-report/src/methods/off.js.html +1 -1
- package/coverage/lcov-report/src/methods/on.js.html +1 -1
- package/coverage/lcov-report/src/methods/reset.js.html +5 -8
- package/coverage/lcov-report/src/methods/setDependencies.js.html +1 -1
- package/coverage/lcov-report/src/methods/update.js.html +1 -1
- package/coverage/lcov.info +39 -42
- package/package.json +2 -3
- package/src/index.js +7 -3
- package/src/methods/_transit.js +1 -2
- package/src/methods/_warn.js +6 -4
- package/src/methods/exportState.js +1 -2
- package/src/methods/importState.js +1 -2
- package/src/methods/reset.js +1 -2
- package/.nyc_output/86959cba-5ea6-46d1-a68b-aa782a39cf80.json +0 -1
|
@@ -25,7 +25,7 @@
|
|
|
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'>5/5</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -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'>5/5</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -75,14 +75,12 @@
|
|
|
75
75
|
<a name='L16'></a><a href='#L16'>16</a>
|
|
76
76
|
<a name='L17'></a><a href='#L17'>17</a>
|
|
77
77
|
<a name='L18'></a><a href='#L18'>18</a>
|
|
78
|
-
<a name='L19'></a><a href='#L19'>19</a>
|
|
79
|
-
<a name='L20'></a><a href='#L20'>20</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
78
|
+
<a name='L19'></a><a href='#L19'>19</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
80
79
|
<span class="cline-any cline-yes">17x</span>
|
|
81
80
|
<span class="cline-any cline-neutral"> </span>
|
|
82
81
|
<span class="cline-any cline-neutral"> </span>
|
|
83
82
|
<span class="cline-any cline-yes">2x</span>
|
|
84
83
|
<span class="cline-any cline-yes">2x</span>
|
|
85
|
-
<span class="cline-any cline-yes">2x</span>
|
|
86
84
|
<span class="cline-any cline-neutral"> </span>
|
|
87
85
|
<span class="cline-any cline-yes">2x</span>
|
|
88
86
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -100,8 +98,7 @@ return function () {
|
|
|
100
98
|
// *** Export internal flags and state as an object
|
|
101
99
|
const
|
|
102
100
|
state = fsm.state
|
|
103
|
-
,
|
|
104
|
-
, stateData = walk ( fsm.stateData )
|
|
101
|
+
, stateData = fsm.___walk ({ data : fsm.stateData })
|
|
105
102
|
;
|
|
106
103
|
return {
|
|
107
104
|
state
|
|
@@ -121,7 +118,7 @@ module.exports = exportState
|
|
|
121
118
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
122
119
|
Code coverage generated by
|
|
123
120
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
124
|
-
at Fri
|
|
121
|
+
at Fri Oct 14 2022 08:55:54 GMT+0300 (Eastern European Summer Time)
|
|
125
122
|
</div>
|
|
126
123
|
</div>
|
|
127
124
|
<script src="../../prettify.js"></script>
|
|
@@ -94,7 +94,7 @@ module.exports = getState
|
|
|
94
94
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
95
95
|
Code coverage generated by
|
|
96
96
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
97
|
-
at Fri
|
|
97
|
+
at Fri Oct 14 2022 08:55:54 GMT+0300 (Eastern European Summer Time)
|
|
98
98
|
</div>
|
|
99
99
|
</div>
|
|
100
100
|
<script src="../../prettify.js"></script>
|
|
@@ -103,7 +103,7 @@ module.exports = ignoreCachedUpdates
|
|
|
103
103
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
104
104
|
Code coverage generated by
|
|
105
105
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
106
|
-
at Fri
|
|
106
|
+
at Fri Oct 14 2022 08:55:54 GMT+0300 (Eastern European Summer Time)
|
|
107
107
|
</div>
|
|
108
108
|
</div>
|
|
109
109
|
<script src="../../prettify.js"></script>
|
|
@@ -25,7 +25,7 @@
|
|
|
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'>5/5</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -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'>5/5</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -72,14 +72,12 @@
|
|
|
72
72
|
<a name='L13'></a><a href='#L13'>13</a>
|
|
73
73
|
<a name='L14'></a><a href='#L14'>14</a>
|
|
74
74
|
<a name='L15'></a><a href='#L15'>15</a>
|
|
75
|
-
<a name='L16'></a><a href='#L16'>16</a>
|
|
76
|
-
<a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
75
|
+
<a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
77
76
|
<span class="cline-any cline-yes">17x</span>
|
|
78
77
|
<span class="cline-any cline-neutral"> </span>
|
|
79
78
|
<span class="cline-any cline-yes">1x</span>
|
|
80
79
|
<span class="cline-any cline-yes">1x</span>
|
|
81
80
|
<span class="cline-any cline-yes">1x</span>
|
|
82
|
-
<span class="cline-any cline-yes">1x</span>
|
|
83
81
|
<span class="cline-any cline-neutral"> </span>
|
|
84
82
|
<span class="cline-any cline-neutral"> </span>
|
|
85
83
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -92,10 +90,9 @@
|
|
|
92
90
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">function importState (fsm) {
|
|
93
91
|
return function ( {state, stateData} ) {
|
|
94
92
|
// *** Import existing state to fsm
|
|
95
|
-
const { walk } = fsm.dependencies;
|
|
96
93
|
<span class="missing-if-branch" title="else path not taken" >E</span>if ( state ) {
|
|
97
94
|
fsm.state = state
|
|
98
|
-
fsm.stateData =
|
|
95
|
+
fsm.stateData = fsm.___walk ({ data : stateData })
|
|
99
96
|
// TODO: test if stateData exist ??!
|
|
100
97
|
}
|
|
101
98
|
}} // importState func.
|
|
@@ -112,7 +109,7 @@ module.exports = importState
|
|
|
112
109
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
113
110
|
Code coverage generated by
|
|
114
111
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
115
|
-
at Fri
|
|
112
|
+
at Fri Oct 14 2022 08:55:54 GMT+0300 (Eastern European Summer Time)
|
|
116
113
|
</div>
|
|
117
114
|
</div>
|
|
118
115
|
<script src="../../prettify.js"></script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">93.
|
|
26
|
+
<span class="strong">93.79% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>151/161</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">95.
|
|
47
|
+
<span class="strong">95.8% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>137/143</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -123,13 +123,13 @@
|
|
|
123
123
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
124
124
|
</td>
|
|
125
125
|
<td data-value="100" class="pct high">100%</td>
|
|
126
|
-
<td data-value="
|
|
126
|
+
<td data-value="8" class="abs high">8/8</td>
|
|
127
127
|
<td data-value="100" class="pct high">100%</td>
|
|
128
128
|
<td data-value="2" class="abs high">2/2</td>
|
|
129
129
|
<td data-value="100" class="pct high">100%</td>
|
|
130
130
|
<td data-value="2" class="abs high">2/2</td>
|
|
131
131
|
<td data-value="100" class="pct high">100%</td>
|
|
132
|
-
<td data-value="
|
|
132
|
+
<td data-value="7" class="abs high">7/7</td>
|
|
133
133
|
</tr>
|
|
134
134
|
|
|
135
135
|
<tr>
|
|
@@ -164,17 +164,17 @@
|
|
|
164
164
|
|
|
165
165
|
<tr>
|
|
166
166
|
<td class="file low" data-value="_warn.js"><a href="_warn.js.html">_warn.js</a></td>
|
|
167
|
-
<td data-value="
|
|
168
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
167
|
+
<td data-value="40" class="pic low">
|
|
168
|
+
<div class="chart"><div class="cover-fill" style="width: 40%"></div><div class="cover-empty" style="width: 60%"></div></div>
|
|
169
169
|
</td>
|
|
170
|
-
<td data-value="
|
|
171
|
-
<td data-value="
|
|
170
|
+
<td data-value="40" class="pct low">40%</td>
|
|
171
|
+
<td data-value="5" class="abs low">2/5</td>
|
|
172
172
|
<td data-value="0" class="pct low">0%</td>
|
|
173
173
|
<td data-value="2" class="abs low">0/2</td>
|
|
174
174
|
<td data-value="33.33" class="pct low">33.33%</td>
|
|
175
175
|
<td data-value="3" class="abs low">1/3</td>
|
|
176
|
-
<td data-value="
|
|
177
|
-
<td data-value="
|
|
176
|
+
<td data-value="50" class="pct medium">50%</td>
|
|
177
|
+
<td data-value="4" class="abs medium">2/4</td>
|
|
178
178
|
</tr>
|
|
179
179
|
|
|
180
180
|
<tr>
|
|
@@ -183,13 +183,13 @@
|
|
|
183
183
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
184
184
|
</td>
|
|
185
185
|
<td data-value="100" class="pct high">100%</td>
|
|
186
|
-
<td data-value="
|
|
186
|
+
<td data-value="5" class="abs high">5/5</td>
|
|
187
187
|
<td data-value="100" class="pct high">100%</td>
|
|
188
188
|
<td data-value="0" class="abs high">0/0</td>
|
|
189
189
|
<td data-value="100" class="pct high">100%</td>
|
|
190
190
|
<td data-value="2" class="abs high">2/2</td>
|
|
191
191
|
<td data-value="100" class="pct high">100%</td>
|
|
192
|
-
<td data-value="
|
|
192
|
+
<td data-value="5" class="abs high">5/5</td>
|
|
193
193
|
</tr>
|
|
194
194
|
|
|
195
195
|
<tr>
|
|
@@ -228,13 +228,13 @@
|
|
|
228
228
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
229
229
|
</td>
|
|
230
230
|
<td data-value="100" class="pct high">100%</td>
|
|
231
|
-
<td data-value="
|
|
231
|
+
<td data-value="5" class="abs high">5/5</td>
|
|
232
232
|
<td data-value="50" class="pct medium">50%</td>
|
|
233
233
|
<td data-value="2" class="abs medium">1/2</td>
|
|
234
234
|
<td data-value="100" class="pct high">100%</td>
|
|
235
235
|
<td data-value="2" class="abs high">2/2</td>
|
|
236
236
|
<td data-value="100" class="pct high">100%</td>
|
|
237
|
-
<td data-value="
|
|
237
|
+
<td data-value="5" class="abs high">5/5</td>
|
|
238
238
|
</tr>
|
|
239
239
|
|
|
240
240
|
<tr>
|
|
@@ -288,13 +288,13 @@
|
|
|
288
288
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
289
289
|
</td>
|
|
290
290
|
<td data-value="100" class="pct high">100%</td>
|
|
291
|
-
<td data-value="
|
|
291
|
+
<td data-value="4" class="abs high">4/4</td>
|
|
292
292
|
<td data-value="100" class="pct high">100%</td>
|
|
293
293
|
<td data-value="0" class="abs high">0/0</td>
|
|
294
294
|
<td data-value="100" class="pct high">100%</td>
|
|
295
295
|
<td data-value="2" class="abs high">2/2</td>
|
|
296
296
|
<td data-value="100" class="pct high">100%</td>
|
|
297
|
-
<td data-value="
|
|
297
|
+
<td data-value="4" class="abs high">4/4</td>
|
|
298
298
|
</tr>
|
|
299
299
|
|
|
300
300
|
<tr>
|
|
@@ -335,7 +335,7 @@
|
|
|
335
335
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
336
336
|
Code coverage generated by
|
|
337
337
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
338
|
-
at Fri
|
|
338
|
+
at Fri Oct 14 2022 08:55:54 GMT+0300 (Eastern European Summer Time)
|
|
339
339
|
</div>
|
|
340
340
|
</div>
|
|
341
341
|
<script src="../../prettify.js"></script>
|
|
@@ -208,7 +208,7 @@ module.exports = fn
|
|
|
208
208
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
209
209
|
Code coverage generated by
|
|
210
210
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
211
|
-
at Fri
|
|
211
|
+
at Fri Oct 14 2022 08:55:54 GMT+0300 (Eastern European Summer Time)
|
|
212
212
|
</div>
|
|
213
213
|
</div>
|
|
214
214
|
<script src="../../prettify.js"></script>
|
|
@@ -97,7 +97,7 @@ module.exports = off
|
|
|
97
97
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
98
98
|
Code coverage generated by
|
|
99
99
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
100
|
-
at Fri
|
|
100
|
+
at Fri Oct 14 2022 08:55:54 GMT+0300 (Eastern European Summer Time)
|
|
101
101
|
</div>
|
|
102
102
|
</div>
|
|
103
103
|
<script src="../../prettify.js"></script>
|
|
@@ -100,7 +100,7 @@ module.exports = on
|
|
|
100
100
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
101
101
|
Code coverage generated by
|
|
102
102
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
103
|
-
at Fri
|
|
103
|
+
at Fri Oct 14 2022 08:55:54 GMT+0300 (Eastern European Summer Time)
|
|
104
104
|
</div>
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
@@ -25,7 +25,7 @@
|
|
|
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'>4/4</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -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'>4/4</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -68,12 +68,10 @@
|
|
|
68
68
|
<a name='L9'></a><a href='#L9'>9</a>
|
|
69
69
|
<a name='L10'></a><a href='#L10'>10</a>
|
|
70
70
|
<a name='L11'></a><a href='#L11'>11</a>
|
|
71
|
-
<a name='L12'></a><a href='#L12'>12</a>
|
|
72
|
-
<a name='L13'></a><a href='#L13'>13</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
71
|
+
<a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
73
72
|
<span class="cline-any cline-yes">17x</span>
|
|
74
73
|
<span class="cline-any cline-yes">1x</span>
|
|
75
74
|
<span class="cline-any cline-yes">1x</span>
|
|
76
|
-
<span class="cline-any cline-yes">1x</span>
|
|
77
75
|
<span class="cline-any cline-neutral"> </span>
|
|
78
76
|
<span class="cline-any cline-neutral"> </span>
|
|
79
77
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -83,9 +81,8 @@
|
|
|
83
81
|
<span class="cline-any cline-neutral"> </span>
|
|
84
82
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">function reset ( fsm ) {
|
|
85
83
|
return function () {
|
|
86
|
-
const { walk } = fsm.dependencies;
|
|
87
84
|
fsm.state = fsm.initialState
|
|
88
|
-
fsm.stateData =
|
|
85
|
+
fsm.stateData = fsm.___walk ({ data : fsm.initialStateData })
|
|
89
86
|
}} // reset func.
|
|
90
87
|
|
|
91
88
|
|
|
@@ -100,7 +97,7 @@ module.exports = reset
|
|
|
100
97
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
101
98
|
Code coverage generated by
|
|
102
99
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
103
|
-
at Fri
|
|
100
|
+
at Fri Oct 14 2022 08:55:54 GMT+0300 (Eastern European Summer Time)
|
|
104
101
|
</div>
|
|
105
102
|
</div>
|
|
106
103
|
<script src="../../prettify.js"></script>
|
|
@@ -91,7 +91,7 @@ module.exports = setDependencies
|
|
|
91
91
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
92
92
|
Code coverage generated by
|
|
93
93
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
94
|
-
at Fri
|
|
94
|
+
at Fri Oct 14 2022 08:55:54 GMT+0300 (Eastern European Summer Time)
|
|
95
95
|
</div>
|
|
96
96
|
</div>
|
|
97
97
|
<script src="../../prettify.js"></script>
|
|
@@ -124,7 +124,7 @@ module.exports = update
|
|
|
124
124
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
125
125
|
Code coverage generated by
|
|
126
126
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
127
|
-
at Fri
|
|
127
|
+
at Fri Oct 14 2022 08:55:54 GMT+0300 (Eastern European Summer Time)
|
|
128
128
|
</div>
|
|
129
129
|
</div>
|
|
130
130
|
<script src="../../prettify.js"></script>
|
package/coverage/lcov.info
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
TN:
|
|
2
2
|
SF:src/index.js
|
|
3
3
|
FN:9,Fsm
|
|
4
|
-
FN:
|
|
4
|
+
FN:31,(anonymous_1)
|
|
5
5
|
FNF:2
|
|
6
6
|
FNH:2
|
|
7
7
|
FNDA:17,Fsm
|
|
@@ -16,26 +16,28 @@ DA:13,17
|
|
|
16
16
|
DA:14,17
|
|
17
17
|
DA:15,17
|
|
18
18
|
DA:16,17
|
|
19
|
-
DA:
|
|
19
|
+
DA:17,17
|
|
20
20
|
DA:19,17
|
|
21
21
|
DA:20,17
|
|
22
22
|
DA:21,17
|
|
23
|
-
DA:
|
|
24
|
-
DA:
|
|
25
|
-
DA:31,
|
|
26
|
-
DA:32,17
|
|
27
|
-
DA:33,17
|
|
23
|
+
DA:22,17
|
|
24
|
+
DA:29,17
|
|
25
|
+
DA:31,272
|
|
28
26
|
DA:34,17
|
|
29
|
-
DA:
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
DA:35,17
|
|
28
|
+
DA:36,17
|
|
29
|
+
DA:37,17
|
|
30
|
+
DA:38,17
|
|
31
|
+
DA:44,1
|
|
32
|
+
LF:23
|
|
33
|
+
LH:23
|
|
32
34
|
BRDA:9,0,0,2
|
|
33
35
|
BRDA:12,1,0,17
|
|
34
36
|
BRDA:12,1,1,1
|
|
35
37
|
BRDA:13,2,0,17
|
|
36
38
|
BRDA:13,2,1,1
|
|
37
|
-
BRDA:
|
|
38
|
-
BRDA:
|
|
39
|
+
BRDA:35,3,0,0
|
|
40
|
+
BRDA:35,3,1,17
|
|
39
41
|
BRF:7
|
|
40
42
|
BRH:6
|
|
41
43
|
end_of_record
|
|
@@ -149,14 +151,13 @@ DA:2,17
|
|
|
149
151
|
DA:5,23
|
|
150
152
|
DA:6,23
|
|
151
153
|
DA:7,23
|
|
152
|
-
DA:
|
|
153
|
-
DA:10,
|
|
154
|
-
DA:
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
BRDA:
|
|
159
|
-
BRDA:10,0,1,4
|
|
154
|
+
DA:9,23
|
|
155
|
+
DA:10,4
|
|
156
|
+
DA:15,1
|
|
157
|
+
LF:7
|
|
158
|
+
LH:7
|
|
159
|
+
BRDA:9,0,0,19
|
|
160
|
+
BRDA:9,0,1,4
|
|
160
161
|
BRF:2
|
|
161
162
|
BRH:2
|
|
162
163
|
end_of_record
|
|
@@ -261,7 +262,7 @@ TN:
|
|
|
261
262
|
SF:src/methods/_warn.js
|
|
262
263
|
FN:1,_warn
|
|
263
264
|
FN:2,(anonymous_1)
|
|
264
|
-
FN:
|
|
265
|
+
FN:6,(anonymous_2)
|
|
265
266
|
FNF:3
|
|
266
267
|
FNH:1
|
|
267
268
|
FNDA:17,_warn
|
|
@@ -269,13 +270,12 @@ FNDA:0,(anonymous_1)
|
|
|
269
270
|
FNDA:0,(anonymous_2)
|
|
270
271
|
DA:2,17
|
|
271
272
|
DA:4,0
|
|
272
|
-
DA:
|
|
273
|
-
DA:
|
|
274
|
-
|
|
275
|
-
LF:5
|
|
273
|
+
DA:7,0
|
|
274
|
+
DA:14,1
|
|
275
|
+
LF:4
|
|
276
276
|
LH:2
|
|
277
|
-
BRDA:
|
|
278
|
-
BRDA:
|
|
277
|
+
BRDA:7,0,0,0
|
|
278
|
+
BRDA:7,0,1,0
|
|
279
279
|
BRF:2
|
|
280
280
|
BRH:0
|
|
281
281
|
end_of_record
|
|
@@ -290,11 +290,10 @@ FNDA:2,(anonymous_1)
|
|
|
290
290
|
DA:2,17
|
|
291
291
|
DA:5,2
|
|
292
292
|
DA:6,2
|
|
293
|
-
DA:
|
|
294
|
-
DA:
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
LH:6
|
|
293
|
+
DA:8,2
|
|
294
|
+
DA:16,1
|
|
295
|
+
LF:5
|
|
296
|
+
LH:5
|
|
298
297
|
BRF:0
|
|
299
298
|
BRH:0
|
|
300
299
|
end_of_record
|
|
@@ -346,12 +345,11 @@ DA:2,17
|
|
|
346
345
|
DA:4,1
|
|
347
346
|
DA:5,1
|
|
348
347
|
DA:6,1
|
|
349
|
-
DA:
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
BRDA:
|
|
354
|
-
BRDA:5,0,1,0
|
|
348
|
+
DA:13,1
|
|
349
|
+
LF:5
|
|
350
|
+
LH:5
|
|
351
|
+
BRDA:4,0,0,1
|
|
352
|
+
BRDA:4,0,1,0
|
|
355
353
|
BRF:2
|
|
356
354
|
BRH:1
|
|
357
355
|
end_of_record
|
|
@@ -431,10 +429,9 @@ FNDA:1,(anonymous_1)
|
|
|
431
429
|
DA:2,17
|
|
432
430
|
DA:3,1
|
|
433
431
|
DA:4,1
|
|
434
|
-
DA:
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
LH:5
|
|
432
|
+
DA:9,1
|
|
433
|
+
LF:4
|
|
434
|
+
LH:4
|
|
438
435
|
BRF:0
|
|
439
436
|
BRH:0
|
|
440
437
|
end_of_record
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peter.naydenov/fsm",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Simple Finite State Machine",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -10,12 +10,11 @@
|
|
|
10
10
|
"author": "Peter Naydenov",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@peter.naydenov/walk": "
|
|
13
|
+
"@peter.naydenov/walk": "3.0.0",
|
|
14
14
|
"ask-for-promise": "1.3.1"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"chai": "4.3.6",
|
|
18
|
-
"expect.js": "0.3.1",
|
|
19
18
|
"mocha": "10.0.0",
|
|
20
19
|
"nyc": "15.1.0"
|
|
21
20
|
},
|
package/src/index.js
CHANGED
|
@@ -14,9 +14,10 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
|
14
14
|
fsm.lock = false // switch 'ON' during transition in progress. Write other updates in cache.
|
|
15
15
|
fsm.cache = [] // cached 'update' commands
|
|
16
16
|
fsm.askForPromise = askForPromise
|
|
17
|
+
fsm.___walk = walk
|
|
17
18
|
|
|
18
|
-
fsm.stateData = walk ( stateData )
|
|
19
|
-
fsm.initialStateData = walk ( stateData )
|
|
19
|
+
fsm.stateData = walk ({ data:stateData })
|
|
20
|
+
fsm.initialStateData = walk ({ data:stateData })
|
|
20
21
|
fsm.dependencies = { walk, askForPromise }
|
|
21
22
|
fsm.callback = {
|
|
22
23
|
update : []
|
|
@@ -25,7 +26,10 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
|
25
26
|
, negative : []
|
|
26
27
|
}
|
|
27
28
|
|
|
28
|
-
walk (
|
|
29
|
+
walk ({ // Attach methods to fsm
|
|
30
|
+
data:methods
|
|
31
|
+
, keyCallback : ({key:k}) => fsm[k] = methods[k](fsm)
|
|
32
|
+
})
|
|
29
33
|
|
|
30
34
|
const {transitions, nextState, chainActions } = fsm._setTransitions ( table, lib );
|
|
31
35
|
if ( debug ) fsm._warn ( transitions )
|
package/src/methods/_transit.js
CHANGED
|
@@ -3,8 +3,7 @@ return function ( task, key, dt ) { // ( promiseObj, transitionKey, addition
|
|
|
3
3
|
// *** Execute transition if exists. Ignore all non-predefined cases
|
|
4
4
|
const
|
|
5
5
|
dependencies = fsm.dependencies
|
|
6
|
-
, {
|
|
7
|
-
, stateData = walk ( fsm.stateData )
|
|
6
|
+
, stateData = fsm.___walk ({ data:fsm.stateData })
|
|
8
7
|
, transition = fsm.transitions [ key ]
|
|
9
8
|
;
|
|
10
9
|
if ( typeof transition === 'function' ) transition ( task, dependencies, stateData, dt )
|
package/src/methods/_warn.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
function _warn ( fsm ) {
|
|
2
2
|
return function ( transitions ) {
|
|
3
3
|
// *** Warn if transition function used in description table is not defined.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
fsm.___walk ({
|
|
5
|
+
data : transitions
|
|
6
|
+
, keyCallback : (v,k) => {
|
|
7
|
+
if ( v == null ) console.log ( `Warning: Transition for ${k} is not defined` )
|
|
8
|
+
}
|
|
9
|
+
})
|
|
8
10
|
}} // warn func.
|
|
9
11
|
|
|
10
12
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
function importState (fsm) {
|
|
2
2
|
return function ( {state, stateData} ) {
|
|
3
3
|
// *** Import existing state to fsm
|
|
4
|
-
const { walk } = fsm.dependencies;
|
|
5
4
|
if ( state ) {
|
|
6
5
|
fsm.state = state
|
|
7
|
-
fsm.stateData =
|
|
6
|
+
fsm.stateData = fsm.___walk ({ data : stateData })
|
|
8
7
|
// TODO: test if stateData exist ??!
|
|
9
8
|
}
|
|
10
9
|
}} // importState func.
|
package/src/methods/reset.js
CHANGED