Workiva / state_machine

Easily create a finite state machine and define legal state transitions. Listen to state entrances, departures, and transitions.
Other
61 stars 24 forks source link

chore(state) expose __none__ state #60

Open lidio601 opened 4 years ago

lidio601 commented 4 years ago

Motivation

I'm listening to a state onEnter event to perform some database changes when a transition happens.

I noticed that this event was triggered also just after the stm.start(initialState); line.

To cope with this event and ignore this first initial transition I checked the source code and found that this event has a stub __none__ state.

So in my code I ended up with this:

state.onEnter((change) {
  if (change.from.name != '__none__') {
    // do something
  }
});

I think this is not the best approach as I'm relying on some internal representation. That's why I'm exposing this State.isNone getter.

Changes

Release Notes

Exposed State.isNone and StateChange.isInitial to distinguish initial state change events.

Review

See CONTRIBUTING.md for more details on review types (+1 / QA +1 / +10) and code review process.

Please review:

QA Checklist

Merge Checklist

While we perform many automated checks before auto-merging, some manual checks are needed:

aviary-wf commented 4 years ago

Security Insights

No security relevant content was detected by automated scans.

Action Items

lidio601 commented 4 years ago

hi there, how's going with this one?

evanweible-wf commented 4 years ago

@lidio601 if you could run dartfmt and commit the changes, we should be able to get this merged. Thanks!