@peter.naydenov/fsm 2.2.3 → 2.2.4

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/86959cba-5ea6-46d1-a68b-aa782a39cf80.json +1 -0
  2. package/.nyc_output/processinfo/{b455f38b-b488-4973-b068-7b61e4c704dd.json → 86959cba-5ea6-46d1-a68b-aa782a39cf80.json} +1 -1
  3. package/.nyc_output/processinfo/index.json +1 -1
  4. package/README.md +9 -3
  5. package/coverage/lcov-report/index.html +10 -10
  6. package/coverage/lcov-report/src/index.html +1 -1
  7. package/coverage/lcov-report/src/index.js.html +26 -32
  8. package/coverage/lcov-report/src/methods/_getChain.js.html +2 -2
  9. package/coverage/lcov-report/src/methods/_onUpdateTask.js.html +2 -2
  10. package/coverage/lcov-report/src/methods/_setTransitions.js.html +14 -14
  11. package/coverage/lcov-report/src/methods/_transit.js.html +9 -6
  12. package/coverage/lcov-report/src/methods/_triggerCacheUpdate.js.html +2 -2
  13. package/coverage/lcov-report/src/methods/_updateStep.js.html +2 -2
  14. package/coverage/lcov-report/src/methods/_warn.js.html +13 -10
  15. package/coverage/lcov-report/src/methods/exportState.js.html +9 -6
  16. package/coverage/lcov-report/src/methods/getState.js.html +2 -2
  17. package/coverage/lcov-report/src/methods/ignoreCacheUpdates.js.html +2 -2
  18. package/coverage/lcov-report/src/methods/importState.js.html +12 -6
  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 +2 -2
  22. package/coverage/lcov-report/src/methods/on.js.html +2 -2
  23. package/coverage/lcov-report/src/methods/reset.js.html +9 -6
  24. package/coverage/lcov-report/src/methods/setDependencies.js.html +2 -2
  25. package/coverage/lcov-report/src/methods/update.js.html +2 -2
  26. package/coverage/lcov.info +109 -104
  27. package/package.json +4 -3
  28. package/src/index.js +7 -9
  29. package/src/methods/_transit.js +2 -1
  30. package/src/methods/_warn.js +4 -3
  31. package/src/methods/exportState.js +2 -1
  32. package/src/methods/importState.js +3 -1
  33. package/src/methods/reset.js +2 -1
  34. package/.nyc_output/b455f38b-b488-4973-b068-7b61e4c704dd.json +0 -1
@@ -1,41 +1,41 @@
1
1
  TN:
2
2
  SF:src/index.js
3
- FN:8,Fsm
4
- FN:30,(anonymous_1)
3
+ FN:9,Fsm
4
+ FN:28,(anonymous_1)
5
5
  FNF:2
6
6
  FNH:2
7
- FNDA:16,Fsm
8
- FNDA:256,(anonymous_1)
7
+ FNDA:17,Fsm
8
+ FNDA:272,(anonymous_1)
9
9
  DA:3,1
10
10
  DA:4,1
11
11
  DA:5,1
12
- DA:10,16
13
- DA:11,16
14
- DA:14,16
15
- DA:15,16
16
- DA:16,16
17
- DA:17,16
18
- DA:18,16
19
- DA:20,16
20
- DA:21,16
21
- DA:22,16
22
- DA:23,16
23
- DA:30,256
24
- DA:32,16
25
- DA:33,16
26
- DA:34,16
27
- DA:35,16
28
- DA:36,16
29
- DA:42,1
12
+ DA:6,1
13
+ DA:10,17
14
+ DA:12,17
15
+ DA:13,17
16
+ DA:14,17
17
+ DA:15,17
18
+ DA:16,17
19
+ DA:18,17
20
+ DA:19,17
21
+ DA:20,17
22
+ DA:21,17
23
+ DA:28,272
24
+ DA:30,17
25
+ DA:31,17
26
+ DA:32,17
27
+ DA:33,17
28
+ DA:34,17
29
+ DA:40,1
30
30
  LF:21
31
31
  LH:21
32
- BRDA:8,0,0,2
33
- BRDA:14,1,0,16
34
- BRDA:14,1,1,1
35
- BRDA:15,2,0,16
36
- BRDA:15,2,1,1
37
- BRDA:33,3,0,0
38
- BRDA:33,3,1,16
32
+ BRDA:9,0,0,2
33
+ BRDA:12,1,0,17
34
+ BRDA:12,1,1,1
35
+ BRDA:13,2,0,17
36
+ BRDA:13,2,1,1
37
+ BRDA:31,3,0,0
38
+ BRDA:31,3,1,17
39
39
  BRF:7
40
40
  BRH:6
41
41
  end_of_record
@@ -45,9 +45,9 @@ FN:1,_getChain
45
45
  FN:2,(anonymous_1)
46
46
  FNF:2
47
47
  FNH:2
48
- FNDA:16,_getChain
48
+ FNDA:17,_getChain
49
49
  FNDA:23,(anonymous_1)
50
- DA:2,16
50
+ DA:2,17
51
51
  DA:3,23
52
52
  DA:4,4
53
53
  DA:9,1
@@ -66,11 +66,11 @@ FN:8,(anonymous_2)
66
66
  FN:13,(anonymous_3)
67
67
  FNF:4
68
68
  FNH:4
69
- FNDA:16,_onUpdateTask
69
+ FNDA:17,_onUpdateTask
70
70
  FNDA:19,_onUpdateTask
71
71
  FNDA:4,(anonymous_2)
72
72
  FNDA:19,(anonymous_3)
73
- DA:2,16
73
+ DA:2,17
74
74
  DA:4,19
75
75
  DA:5,19
76
76
  DA:8,19
@@ -94,27 +94,27 @@ FN:30,_isAltValid
94
94
  FN:34,(anonymous_4)
95
95
  FNF:5
96
96
  FNH:5
97
- FNDA:16,_setTransitions
98
- FNDA:16,(anonymous_1)
99
- FNDA:37,(anonymous_2)
100
- FNDA:37,_isAltValid
97
+ FNDA:17,_setTransitions
98
+ FNDA:17,(anonymous_1)
99
+ FNDA:39,(anonymous_2)
100
+ FNDA:39,_isAltValid
101
101
  FNDA:8,(anonymous_4)
102
- DA:2,16
103
- DA:5,16
104
- DA:6,16
105
- DA:7,16
106
- DA:9,16
107
- DA:11,37
108
- DA:12,37
109
- DA:13,37
110
- DA:15,37
111
- DA:16,37
112
- DA:17,37
102
+ DA:2,17
103
+ DA:5,17
104
+ DA:6,17
105
+ DA:7,17
106
+ DA:9,17
107
+ DA:11,39
108
+ DA:12,39
109
+ DA:13,39
110
+ DA:15,39
111
+ DA:16,39
112
+ DA:17,39
113
113
  DA:18,4
114
114
  DA:19,4
115
115
  DA:20,4
116
- DA:23,16
117
- DA:32,37
116
+ DA:23,17
117
+ DA:32,39
118
118
  DA:33,4
119
119
  DA:34,4
120
120
  DA:35,8
@@ -122,11 +122,11 @@ DA:37,4
122
122
  DA:42,1
123
123
  LF:21
124
124
  LH:21
125
- BRDA:15,0,0,37
126
- BRDA:15,0,1,7
125
+ BRDA:15,0,0,39
126
+ BRDA:15,0,1,8
127
127
  BRDA:17,1,0,4
128
- BRDA:17,1,1,33
129
- BRDA:32,2,0,33
128
+ BRDA:17,1,1,35
129
+ BRDA:32,2,0,35
130
130
  BRDA:32,2,1,4
131
131
  BRDA:33,3,0,0
132
132
  BRDA:33,3,1,4
@@ -143,19 +143,20 @@ FN:1,_transit
143
143
  FN:2,(anonymous_1)
144
144
  FNF:2
145
145
  FNH:2
146
- FNDA:16,_transit
146
+ FNDA:17,_transit
147
147
  FNDA:23,(anonymous_1)
148
- DA:2,16
148
+ DA:2,17
149
149
  DA:5,23
150
150
  DA:6,23
151
151
  DA:7,23
152
- DA:9,23
153
- DA:10,4
154
- DA:15,1
155
- LF:7
156
- LH:7
157
- BRDA:9,0,0,19
158
- BRDA:9,0,1,4
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
159
160
  BRF:2
160
161
  BRH:2
161
162
  end_of_record
@@ -167,11 +168,11 @@ FN:5,(anonymous_2)
167
168
  FN:11,(anonymous_3)
168
169
  FNF:4
169
170
  FNH:4
170
- FNDA:16,_triggerCacheUpdate
171
+ FNDA:17,_triggerCacheUpdate
171
172
  FNDA:19,(anonymous_1)
172
173
  FNDA:6,(anonymous_2)
173
174
  FNDA:5,(anonymous_3)
174
- DA:2,16
175
+ DA:2,17
175
176
  DA:3,19
176
177
  DA:4,5
177
178
  DA:5,5
@@ -201,7 +202,7 @@ FN:39,(anonymous_6)
201
202
  FN:52,(anonymous_7)
202
203
  FNF:8
203
204
  FNH:7
204
- FNDA:16,_updateStep
205
+ FNDA:17,_updateStep
205
206
  FNDA:23,(anonymous_1)
206
207
  FNDA:23,(anonymous_2)
207
208
  FNDA:1,(anonymous_3)
@@ -209,7 +210,7 @@ FNDA:1,(anonymous_4)
209
210
  FNDA:1,(anonymous_5)
210
211
  FNDA:1,(anonymous_6)
211
212
  FNDA:0,(anonymous_7)
212
- DA:2,16
213
+ DA:2,17
213
214
  DA:4,23
214
215
  DA:5,23
215
216
  DA:6,23
@@ -260,20 +261,21 @@ TN:
260
261
  SF:src/methods/_warn.js
261
262
  FN:1,_warn
262
263
  FN:2,(anonymous_1)
263
- FN:4,(anonymous_2)
264
+ FN:5,(anonymous_2)
264
265
  FNF:3
265
266
  FNH:1
266
- FNDA:16,_warn
267
+ FNDA:17,_warn
267
268
  FNDA:0,(anonymous_1)
268
269
  FNDA:0,(anonymous_2)
269
- DA:2,16
270
+ DA:2,17
270
271
  DA:4,0
271
272
  DA:5,0
272
- DA:11,1
273
- LF:4
273
+ DA:6,0
274
+ DA:12,1
275
+ LF:5
274
276
  LH:2
275
- BRDA:5,0,0,0
276
- BRDA:5,0,1,0
277
+ BRDA:6,0,0,0
278
+ BRDA:6,0,1,0
277
279
  BRF:2
278
280
  BRH:0
279
281
  end_of_record
@@ -283,15 +285,16 @@ FN:1,exportState
283
285
  FN:2,(anonymous_1)
284
286
  FNF:2
285
287
  FNH:2
286
- FNDA:16,exportState
288
+ FNDA:17,exportState
287
289
  FNDA:2,(anonymous_1)
288
- DA:2,16
290
+ DA:2,17
289
291
  DA:5,2
290
292
  DA:6,2
291
- DA:8,2
292
- DA:16,1
293
- LF:5
294
- LH:5
293
+ DA:7,2
294
+ DA:9,2
295
+ DA:17,1
296
+ LF:6
297
+ LH:6
295
298
  BRF:0
296
299
  BRH:0
297
300
  end_of_record
@@ -301,9 +304,9 @@ FN:1,getState
301
304
  FN:2,(anonymous_1)
302
305
  FNF:2
303
306
  FNH:2
304
- FNDA:16,getState
307
+ FNDA:17,getState
305
308
  FNDA:7,(anonymous_1)
306
- DA:2,16
309
+ DA:2,17
307
310
  DA:3,7
308
311
  DA:8,1
309
312
  LF:3
@@ -318,10 +321,10 @@ FN:2,(anonymous_1)
318
321
  FN:5,(anonymous_2)
319
322
  FNF:3
320
323
  FNH:3
321
- FNDA:16,ignoreCachedUpdates
324
+ FNDA:17,ignoreCachedUpdates
322
325
  FNDA:1,(anonymous_1)
323
326
  FNDA:1,(anonymous_2)
324
- DA:2,16
327
+ DA:2,17
325
328
  DA:4,1
326
329
  DA:5,1
327
330
  DA:6,1
@@ -337,17 +340,18 @@ FN:1,importState
337
340
  FN:2,(anonymous_1)
338
341
  FNF:2
339
342
  FNH:2
340
- FNDA:16,importState
343
+ FNDA:17,importState
341
344
  FNDA:1,(anonymous_1)
342
- DA:2,16
345
+ DA:2,17
343
346
  DA:4,1
344
347
  DA:5,1
345
348
  DA:6,1
346
- DA:12,1
347
- LF:5
348
- LH:5
349
- BRDA:4,0,0,1
350
- BRDA:4,0,1,0
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
351
355
  BRF:2
352
356
  BRH:1
353
357
  end_of_record
@@ -384,9 +388,9 @@ FN:1,off
384
388
  FN:2,(anonymous_1)
385
389
  FNF:2
386
390
  FNH:1
387
- FNDA:16,off
391
+ FNDA:17,off
388
392
  FNDA:0,(anonymous_1)
389
- DA:2,16
393
+ DA:2,17
390
394
  DA:3,0
391
395
  DA:4,0
392
396
  DA:9,1
@@ -403,9 +407,9 @@ FN:1,on
403
407
  FN:2,(anonymous_1)
404
408
  FNF:2
405
409
  FNH:2
406
- FNDA:16,on
410
+ FNDA:17,on
407
411
  FNDA:6,(anonymous_1)
408
- DA:2,16
412
+ DA:2,17
409
413
  DA:4,6
410
414
  DA:5,6
411
415
  DA:10,1
@@ -422,14 +426,15 @@ FN:1,reset
422
426
  FN:2,(anonymous_1)
423
427
  FNF:2
424
428
  FNH:2
425
- FNDA:16,reset
429
+ FNDA:17,reset
426
430
  FNDA:1,(anonymous_1)
427
- DA:2,16
431
+ DA:2,17
428
432
  DA:3,1
429
433
  DA:4,1
430
- DA:9,1
431
- LF:4
432
- LH:4
434
+ DA:5,1
435
+ DA:10,1
436
+ LF:5
437
+ LH:5
433
438
  BRF:0
434
439
  BRH:0
435
440
  end_of_record
@@ -439,9 +444,9 @@ FN:1,setDependencies
439
444
  FN:2,(anonymous_1)
440
445
  FNF:2
441
446
  FNH:2
442
- FNDA:16,setDependencies
447
+ FNDA:17,setDependencies
443
448
  FNDA:1,(anonymous_1)
444
- DA:2,16
449
+ DA:2,17
445
450
  DA:3,1
446
451
  DA:7,1
447
452
  LF:3
@@ -456,10 +461,10 @@ FN:2,(anonymous_1)
456
461
  FN:12,(anonymous_2)
457
462
  FNF:3
458
463
  FNH:3
459
- FNDA:16,update
464
+ FNDA:17,update
460
465
  FNDA:20,(anonymous_1)
461
466
  FNDA:14,(anonymous_2)
462
- DA:2,16
467
+ DA:2,17
463
468
  DA:4,20
464
469
  DA:6,20
465
470
  DA:7,6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peter.naydenov/fsm",
3
- "version": "2.2.3",
3
+ "version": "2.2.4",
4
4
  "description": "Simple Finite State Machine",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -10,12 +10,13 @@
10
10
  "author": "Peter Naydenov",
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
+ "@peter.naydenov/walk": "1.1.0",
13
14
  "ask-for-promise": "1.3.1"
14
15
  },
15
16
  "devDependencies": {
16
- "chai": "4.3.4",
17
+ "chai": "4.3.6",
17
18
  "expect.js": "0.3.1",
18
- "mocha": "8.3.2",
19
+ "mocha": "10.0.0",
19
20
  "nyc": "15.1.0"
20
21
  },
21
22
  "repository": {
package/src/index.js CHANGED
@@ -2,14 +2,12 @@
2
2
  const
3
3
  MISSING_STATE = 'N/A'
4
4
  , askForPromise = require ( 'ask-for-promise' )
5
- , methods = require ( './methods/index' )
5
+ , methods = require ( './methods/index' )
6
+ , walk = require ( '@peter.naydenov/walk' )
6
7
  ;
7
8
 
8
9
  function Fsm ({init, table, stateData, debug }, lib={} ) {
9
- const
10
- fsm = this
11
- , fnKeys = Object.keys ( methods )
12
- ;
10
+ const fsm = this;
13
11
 
14
12
  fsm.state = init || MISSING_STATE
15
13
  fsm.initialState = init || MISSING_STATE
@@ -17,9 +15,9 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
17
15
  fsm.cache = [] // cached 'update' commands
18
16
  fsm.askForPromise = askForPromise
19
17
 
20
- fsm.stateData = {...stateData }
21
- fsm.initialStateData = {...stateData }
22
- fsm.dependencies = {}
18
+ fsm.stateData = walk ( stateData )
19
+ fsm.initialStateData = walk ( stateData )
20
+ fsm.dependencies = { walk, askForPromise }
23
21
  fsm.callback = {
24
22
  update : []
25
23
  , transition : []
@@ -27,7 +25,7 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
27
25
  , negative : []
28
26
  }
29
27
 
30
- fnKeys.forEach ( k => fsm[k] = methods[k](fsm ) ) // Attach methods to fsm
28
+ walk ( methods, (v,k) => fsm[k] = methods[k](fsm) ) // Attach methods to fsm
31
29
 
32
30
  const {transitions, nextState, chainActions } = fsm._setTransitions ( table, lib );
33
31
  if ( debug ) fsm._warn ( transitions )
@@ -3,7 +3,8 @@ 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
- , stateData = { ...fsm.stateData }
6
+ , { walk } = dependencies
7
+ , stateData = walk ( fsm.stateData )
7
8
  , transition = fsm.transitions [ key ]
8
9
  ;
9
10
  if ( typeof transition === 'function' ) transition ( task, dependencies, stateData, dt )
@@ -1,9 +1,10 @@
1
1
  function _warn ( fsm ) {
2
2
  return function ( transitions ) {
3
3
  // *** Warn if transition function used in description table is not defined.
4
- Object.keys(transitions).forEach ( k => {
5
- if (transitions[k] == null) console.log ( `Warning: Transition for ${k} is not defined` )
6
- })
4
+ const { walk } = fsm.dependencies;
5
+ walk ( transitions, (v,k) => {
6
+ if (v == null) console.log ( `Warning: Transition for ${k} is not defined` )
7
+ })
7
8
  }} // warn func.
8
9
 
9
10
 
@@ -3,7 +3,8 @@ return function () {
3
3
  // *** Export internal flags and state as an object
4
4
  const
5
5
  state = fsm.state
6
- , stateData = {...fsm.stateData}
6
+ , { walk } = fsm.dependencies
7
+ , stateData = walk ( fsm.stateData )
7
8
  ;
8
9
  return {
9
10
  state
@@ -1,9 +1,11 @@
1
1
  function importState (fsm) {
2
2
  return function ( {state, stateData} ) {
3
3
  // *** Import existing state to fsm
4
+ const { walk } = fsm.dependencies;
4
5
  if ( state ) {
5
6
  fsm.state = state
6
- fsm.stateData = { ...stateData }
7
+ fsm.stateData = walk ( stateData )
8
+ // TODO: test if stateData exist ??!
7
9
  }
8
10
  }} // importState func.
9
11
 
@@ -1,7 +1,8 @@
1
1
  function reset ( fsm ) {
2
2
  return function () {
3
+ const { walk } = fsm.dependencies;
3
4
  fsm.state = fsm.initialState
4
- fsm.stateData = fsm.initialStateData
5
+ fsm.stateData = walk ( fsm.initialStateData )
5
6
  }} // reset func.
6
7
 
7
8