@peter.naydenov/fsm 4.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/README.md +2 -0
- package/coverage/lcov-report/index.html +19 -19
- package/coverage/lcov-report/src/index.html +7 -7
- package/coverage/lcov-report/src/index.js.html +12 -18
- 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 +2 -2
- 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 +9 -18
- package/coverage/lcov-report/src/methods/exportState.js.html +2 -2
- 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 +10 -7
- package/coverage/lcov-report/src/methods/index.html +18 -18
- 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 +9 -6
- 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 +23 -27
- package/coverage/tmp/{coverage-25644-1668538233889-0.json → coverage-29775-1668580484020-0.json} +1 -1
- package/package.json +1 -1
- package/src/index.js +5 -7
- package/src/methods/_transit.js +1 -1
- package/src/methods/_warn.js +3 -6
- package/src/methods/exportState.js +1 -1
- package/src/methods/importState.js +4 -3
- package/src/methods/reset.js +2 -1
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -12,10 +12,9 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
|
12
12
|
fsm.lock = false // switch 'ON' during transition in progress. Write other updates in cache.
|
|
13
13
|
fsm.cache = [] // cached 'update' commands
|
|
14
14
|
fsm.askForPromise = askForPromise
|
|
15
|
-
fsm.___walk = walk
|
|
16
15
|
|
|
17
|
-
fsm.stateData =
|
|
18
|
-
fsm.initialStateData =
|
|
16
|
+
fsm.stateData = { ...stateData }
|
|
17
|
+
fsm.initialStateData = Object.freeze ({ ...stateData })
|
|
19
18
|
fsm.dependencies = { walk, askForPromise }
|
|
20
19
|
fsm.callback = {
|
|
21
20
|
update : []
|
|
@@ -24,10 +23,9 @@ function Fsm ({init, table, stateData, debug }, lib={} ) {
|
|
|
24
23
|
, negative : []
|
|
25
24
|
}
|
|
26
25
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
})
|
|
26
|
+
for ( let k in methods ) {
|
|
27
|
+
fsm[k] = methods[k](fsm)
|
|
28
|
+
}
|
|
31
29
|
|
|
32
30
|
const {transitions, nextState, chainActions } = fsm._setTransitions ( table, lib );
|
|
33
31
|
if ( debug ) fsm._warn ( transitions )
|
package/src/methods/_transit.js
CHANGED
|
@@ -3,7 +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
|
-
, stateData =
|
|
6
|
+
, stateData = { ...fsm.stateData }
|
|
7
7
|
, transition = fsm.transitions [ key ]
|
|
8
8
|
;
|
|
9
9
|
if ( typeof transition === 'function' ) transition ( task, dependencies, stateData, dt )
|
package/src/methods/_warn.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
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
|
-
if ( v == null ) console.log ( `Warning: Transition for ${k} is not defined` )
|
|
8
|
-
}
|
|
9
|
-
})
|
|
4
|
+
Object.entries ( transitions ).forEach ( ([v,k]) => {
|
|
5
|
+
if ( v == null ) console.log ( `Warning: Transition for ${k} is not defined` )
|
|
6
|
+
})
|
|
10
7
|
}} // warn func.
|
|
11
8
|
|
|
12
9
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
function importState (fsm) {
|
|
2
|
-
return function ( {state, stateData} ) {
|
|
2
|
+
return function ( {state, stateData } ) {
|
|
3
3
|
// *** Import existing state to fsm
|
|
4
4
|
if ( state ) {
|
|
5
5
|
fsm.state = state
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
if ( stateData ) {
|
|
7
|
+
fsm.stateData = { ...stateData }
|
|
8
|
+
}
|
|
8
9
|
}
|
|
9
10
|
}} // importState func.
|
|
10
11
|
|
package/src/methods/reset.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
function reset ( fsm ) {
|
|
2
2
|
return function () {
|
|
3
3
|
fsm.state = fsm.initialState
|
|
4
|
-
fsm.stateData =
|
|
4
|
+
fsm.stateData = {}
|
|
5
|
+
Object.entries ( fsm.initialStateData ).forEach ( ([key,value]) => fsm.stateData[key] = value )
|
|
5
6
|
}} // reset func.
|
|
6
7
|
|
|
7
8
|
|