Transcompiler `targets` directive
StoneCypher opened this issue · comments
So one of the elephants in the herd in the room regarding transtargeting other state machines is the wild range of feature support betwixt.
Hooks and post-hooks in our comparison set are a great example:
- 10/16 support specific hooks;
- 7/16 (and partly a different set) support general hook;
- 4/16 support post-hooks.
It would be a genuinely nasty surprise to build out a machine on a feature, only to discover that one of your transcompile targets doesn't support it.
It would be quite nice if you could declare early on "I intend to ship this to XState, Stent, ruby:state_machine, and boost:msm", and it warned you the second you started trying to use a property that no, ruby:state_machine
doesn't do that
Something like
targets: [native:javascript native:typescript xstate stent c#:dotnet-state-machine];
Off -> Red 'next' => Green 'next' => Yellow 'next' => Red;
[Red Yellow Green] ~> Off;
And immediately on writing the last line, you should be warned that none of the target machines support forced-only edges.
Blocked by #566