Track valid transitions: PENDING -> SUCCESS/FAILED.
allowed[c].includes
function transition(c, n) { const allowed = { PENDING: ['SUCCESS', 'FAILED'], SUCCESS: [], FAILED: [] }; return allowed[c].includes(n) ? n : c; }