checkGuards
const checkGuardsOld = (guards, transition) => async prevObj => {
const guardValues = await Promise.all(
guards.map(async callback => callback(prevObj, transition))
)
if (!guardValues.every(a => a === true)) {
throw new Error(
`Guard on transition from ${transition.from} to ${
transition.to
} returned false`
)
}
return prevObj
}
checkGuards.js
const checkGuards = (guards, transition) => prevObj =>
compose(
ifElse(
a => a === true,
() => {
throw new Error(
`Guard on transition from ${transition.from} to ${
transition.to
} returned false`
)
},
always(prevObj)
),
some(a => a === false),
thrush(prevObj),
apply(branch),
map(bind(prevObj, transition))
)(guards)
Last updated