@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.
Files changed (34) hide show
  1. package/.nyc_output/4a8b551d-193d-40e4-b4cf-69d27eebf18e.json +1 -0
  2. package/.nyc_output/processinfo/{86959cba-5ea6-46d1-a68b-aa782a39cf80.json → 4a8b551d-193d-40e4-b4cf-69d27eebf18e.json} +1 -1
  3. package/.nyc_output/processinfo/index.json +1 -1
  4. package/README.md +4 -1
  5. package/coverage/lcov-report/index.html +14 -14
  6. package/coverage/lcov-report/src/index.html +8 -8
  7. package/coverage/lcov-report/src/index.js.html +20 -8
  8. package/coverage/lcov-report/src/methods/_getChain.js.html +1 -1
  9. package/coverage/lcov-report/src/methods/_onUpdateTask.js.html +1 -1
  10. package/coverage/lcov-report/src/methods/_setTransitions.js.html +1 -1
  11. package/coverage/lcov-report/src/methods/_transit.js.html +5 -8
  12. package/coverage/lcov-report/src/methods/_triggerCacheUpdate.js.html +1 -1
  13. package/coverage/lcov-report/src/methods/_updateStep.js.html +1 -1
  14. package/coverage/lcov-report/src/methods/_warn.js.html +17 -11
  15. package/coverage/lcov-report/src/methods/exportState.js.html +5 -8
  16. package/coverage/lcov-report/src/methods/getState.js.html +1 -1
  17. package/coverage/lcov-report/src/methods/ignoreCacheUpdates.js.html +1 -1
  18. package/coverage/lcov-report/src/methods/importState.js.html +5 -8
  19. package/coverage/lcov-report/src/methods/index.html +19 -19
  20. package/coverage/lcov-report/src/methods/index.js.html +1 -1
  21. package/coverage/lcov-report/src/methods/off.js.html +1 -1
  22. package/coverage/lcov-report/src/methods/on.js.html +1 -1
  23. package/coverage/lcov-report/src/methods/reset.js.html +5 -8
  24. package/coverage/lcov-report/src/methods/setDependencies.js.html +1 -1
  25. package/coverage/lcov-report/src/methods/update.js.html +1 -1
  26. package/coverage/lcov.info +39 -42
  27. package/package.json +2 -3
  28. package/src/index.js +7 -3
  29. package/src/methods/_transit.js +1 -2
  30. package/src/methods/_warn.js +6 -4
  31. package/src/methods/exportState.js +1 -2
  32. package/src/methods/importState.js +1 -2
  33. package/src/methods/reset.js +1 -2
  34. 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'>6/6</span>
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'>6/6</span>
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">&nbsp;</span>
78
+ <a name='L19'></a><a href='#L19'>19</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
80
79
  <span class="cline-any cline-yes">17x</span>
81
80
  <span class="cline-any cline-neutral">&nbsp;</span>
82
81
  <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
87
85
  <span class="cline-any cline-yes">2x</span>
88
86
  <span class="cline-any cline-neutral">&nbsp;</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
- , { walk } = fsm.dependencies
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 May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
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 May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
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 May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
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'>6/6</span>
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'>6/6</span>
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">&nbsp;</span>
75
+ <a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
77
76
  <span class="cline-any cline-yes">17x</span>
78
77
  <span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
84
82
  <span class="cline-any cline-neutral">&nbsp;</span>
85
83
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -92,10 +90,9 @@
92
90
  <span class="cline-any cline-neutral">&nbsp;</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 = walk ( 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 May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
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.37% </span>
26
+ <span class="strong">93.79% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>155/166</span>
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.27% </span>
47
+ <span class="strong">95.8% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>141/148</span>
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="9" class="abs high">9/9</td>
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="8" class="abs high">8/8</td>
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="33.33" class="pic low">
168
- <div class="chart"><div class="cover-fill" style="width: 33%"></div><div class="cover-empty" style="width: 67%"></div></div>
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="33.33" class="pct low">33.33%</td>
171
- <td data-value="6" class="abs low">2/6</td>
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="40" class="pct low">40%</td>
177
- <td data-value="5" class="abs low">2/5</td>
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="6" class="abs high">6/6</td>
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="6" class="abs high">6/6</td>
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="6" class="abs high">6/6</td>
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="6" class="abs high">6/6</td>
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="5" class="abs high">5/5</td>
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="5" class="abs high">5/5</td>
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 May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
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 May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
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 May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
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 May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
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'>5/5</span>
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'>5/5</span>
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">&nbsp;</span>
71
+ <a name='L12'></a><a href='#L12'>12</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</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">&nbsp;</span>
78
76
  <span class="cline-any cline-neutral">&nbsp;</span>
79
77
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -83,9 +81,8 @@
83
81
  <span class="cline-any cline-neutral">&nbsp;</span>
84
82
  <span class="cline-any cline-neutral">&nbsp;</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 = walk ( fsm.initialStateData )
85
+ fsm.stateData = fsm.___walk ({ data : fsm.initialStateData })
89
86
  }} // reset func.
90
87
  &nbsp;
91
88
  &nbsp;
@@ -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 May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
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 May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
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 May 27 2022 07:47:25 GMT+0300 (Eastern European Summer Time)
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>
@@ -1,7 +1,7 @@
1
1
  TN:
2
2
  SF:src/index.js
3
3
  FN:9,Fsm
4
- FN:28,(anonymous_1)
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:18,17
19
+ DA:17,17
20
20
  DA:19,17
21
21
  DA:20,17
22
22
  DA:21,17
23
- DA:28,272
24
- DA:30,17
25
- DA:31,17
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:40,1
30
- LF:21
31
- LH:21
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:31,3,0,0
38
- BRDA:31,3,1,17
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:8,23
153
- DA:10,23
154
- DA:11,4
155
- DA:16,1
156
- LF:8
157
- LH:8
158
- BRDA:10,0,0,19
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:5,(anonymous_2)
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:5,0
273
- DA:6,0
274
- DA:12,1
275
- LF:5
273
+ DA:7,0
274
+ DA:14,1
275
+ LF:4
276
276
  LH:2
277
- BRDA:6,0,0,0
278
- BRDA:6,0,1,0
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:7,2
294
- DA:9,2
295
- DA:17,1
296
- LF:6
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:7,1
350
- DA:14,1
351
- LF:6
352
- LH:6
353
- BRDA:5,0,0,1
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:5,1
435
- DA:10,1
436
- LF:5
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": "2.2.4",
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": "1.1.0",
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 ( methods, (v,k) => fsm[k] = methods[k](fsm) ) // Attach methods to fsm
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 )
@@ -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
- , { walk } = dependencies
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 )
@@ -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
- const { walk } = fsm.dependencies;
5
- walk ( transitions, (v,k) => {
6
- if (v == null) console.log ( `Warning: Transition for ${k} is not defined` )
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
 
@@ -3,8 +3,7 @@ return function () {
3
3
  // *** Export internal flags and state as an object
4
4
  const
5
5
  state = fsm.state
6
- , { walk } = fsm.dependencies
7
- , stateData = walk ( fsm.stateData )
6
+ , stateData = fsm.___walk ({ data : fsm.stateData })
8
7
  ;
9
8
  return {
10
9
  state
@@ -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 = walk ( stateData )
6
+ fsm.stateData = fsm.___walk ({ data : stateData })
8
7
  // TODO: test if stateData exist ??!
9
8
  }
10
9
  }} // importState func.
@@ -1,8 +1,7 @@
1
1
  function reset ( fsm ) {
2
2
  return function () {
3
- const { walk } = fsm.dependencies;
4
3
  fsm.state = fsm.initialState
5
- fsm.stateData = walk ( fsm.initialStateData )
4
+ fsm.stateData = fsm.___walk ({ data : fsm.initialStateData })
6
5
  }} // reset func.
7
6
 
8
7