Skip to content

Commit 2a15d1a

Browse files
feat(invalidTransition): Better error messaging when param values are invalid
1 parent 1f2f74a commit 2a15d1a

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/transition/transition.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -727,8 +727,13 @@ export class Transition implements IHookRegistry {
727727

728728
if (state.self.abstract)
729729
return `Cannot transition to abstract state '${state.name}'`;
730-
if (!Param.validates(state.parameters(), this.params()))
731-
return `Param values not valid for state '${state.name}'`;
730+
731+
const paramDefs = state.parameters(), values = this.params();
732+
const invalidParams = paramDefs.filter(param => !param.validates(values[param.id]));
733+
if (invalidParams.length) {
734+
return `Param values not valid for state '${state.name}'. Invalid params: [ ${invalidParams.map(param => param.id).join(', ')} ]`;
735+
}
736+
732737
if (this.success === false)
733738
return this._error;
734739
}

0 commit comments

Comments
 (0)