CLI State Machine
High level Concepts
the state machine is based on actions, which are based on states.
Actions consist of:
beforeState: beforeexecute, required State for the Action to be validexecute: a function to execute once prereqs are validafterState: postexecute, what State the action leads to.repeatable: if true, a boolean
States have:
getValues: a function that runs (optionally using the config) and gets values to work withasserts: a function that runs on the result ofgetValueand returns a boolean.
We can run assertions on the requirements at any time. Users should try to get their data from getters instead of directly accessing so that they don't run into inconsistent states and fail. You can run validateState and get back a ValidatedState with two extra fields: value and isValid, for easier coding without excessive execution.
check the comments on src/types.ts for more detailed info.
TSDX Bootstrap
This project was bootstrapped with TSDX.