Skip to content

Implement Strict Mode #47

@FraserTooth

Description

@FraserTooth

Implement "strict": True as an option in the machine configuration to allow a throw on a non-defined event for a given node. As it's a bit tricky to implement this external to the machine at present, e.g.:

# Doesn't throw
new_state = machine.transition(state=current_state, event="💩")

# Example of current check you'd have to do
if new_state.value == current_state.value:
    print("Didn't transition, maybe was an illegal state 🤷")

Similar to the implementation in the TS version of xstate https://github.com/statelyai/xstate/blob/8b7c3e2573341c5ed91057aab77e1977f8de8555/packages/core/src/StateNode.ts#L1095

Happy to take a crack at this if you think its worthwhile.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions