Comparing version 1.0.0 to 1.1.0
@@ -15,2 +15,3 @@ "use strict"; | ||
* @param {function} config.willUpdate function for before set state | ||
* @param {function} config.shouldUpdate function for is need update | ||
* @param {function} config.didUpdate function for after set state | ||
@@ -23,4 +24,5 @@ * @returns {undefined} nothing | ||
var willReceive = config.willReceive; | ||
var willUpdate = config.willUpdate; | ||
var willUpdate = config.willUpdate; | ||
var didUpdate = config.didUpdate; | ||
var shouldUpdate = config.shouldUpdate; | ||
@@ -34,3 +36,5 @@ state.__container__[name] = defaultValue; | ||
set(value) { | ||
willUpdate && willUpdate(state.__container__[name], value) | ||
willUpdate && willUpdate(state.__container__[name], value); | ||
if (shouldUpdate) | ||
if (shouldUpdate(state.__container__[name], value) === false) return; | ||
state.__container__[name] = value; | ||
@@ -37,0 +41,0 @@ didUpdate && didUpdate(value); |
const { init, state } = require('./index'); | ||
init({ | ||
name: 'time', | ||
defaultValue: new Date().getTime(), | ||
name: 'counter', | ||
defaultValue: 1, | ||
willReceive: value => { | ||
console.log('willReceive time', value); | ||
console.log('willReceive counter', value); | ||
}, | ||
@@ -12,2 +12,7 @@ willUpdate: (previousValue, nextValue) => { | ||
}, | ||
shouldUpdate: (previousValue, nextValue) => { | ||
console.log('shouldUpdate', previousValue, nextValue, 'result:', previousValue < nextValue); | ||
if (previousValue < nextValue) return true; | ||
else return false; | ||
}, | ||
didUpdate: value => { | ||
@@ -19,7 +24,15 @@ console.log('didUpdate', value); | ||
setTimeout(() => { | ||
var time = state.time; | ||
var counter = state.counter; | ||
}, 2000); | ||
setTimeout(() => { | ||
state.time = new Date().getTime(); | ||
}, 4000); | ||
state.counter = 2; | ||
}, 4000); | ||
setTimeout(() => { | ||
state.counter = 0; | ||
}, 6000); | ||
setTimeout(() => { | ||
var counter = state.counter; | ||
}, 8000); |
{ | ||
"name": "jetstate", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "state managment", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -25,2 +25,6 @@ # jetstate | ||
}, | ||
shouldUpdate: (previousValue, nextValue) => { | ||
if (typeof nextValue 'number') return true; | ||
else return false | ||
}, | ||
didUpdate: value => { | ||
@@ -27,0 +31,0 @@ console.log('didUpdate', value); |
3331
71
39