diff --git a/examples/description.ts b/examples/description.ts new file mode 100644 index 0000000..0cffa90 --- /dev/null +++ b/examples/description.ts @@ -0,0 +1,11 @@ +import { createMachine } from "xstate"; + +export const descriptionMachine = createMachine({ + initial: 'wow', + description: 'hello!', + states: { + wow: { + description: 'WOWZA!', + }, + }, +}); diff --git a/src/stateNode.ts b/src/stateNode.ts index bd09542..4dfe922 100644 --- a/src/stateNode.ts +++ b/src/stateNode.ts @@ -50,6 +50,7 @@ export type StateNodeReturn = { states?: GetParserResult>>; node: t.Node; meta?: GetParserResult; + description?: GetParserResult; tsTypes?: GetParserResult; context?: GetParserResult; data?: GetParserResult; @@ -81,6 +82,7 @@ const StateNodeObject: AnyParser = objectTypeWithKnownKeys( context: Context, data: AnyNode, preserveActionOrder: BooleanLiteral, + description: StringLiteral, }), ); diff --git a/src/toMachineConfig.ts b/src/toMachineConfig.ts index 1b8d7e8..34b9f6f 100644 --- a/src/toMachineConfig.ts +++ b/src/toMachineConfig.ts @@ -83,6 +83,10 @@ const parseStateNode = ( }; } + if (astResult.description) { + config.description = astResult.description.value + } + if (astResult.onDone) { // @ts-ignore config.onDone = getTransitions(astResult.onDone);