This commit is contained in:
2026-01-10 13:49:33 +00:00
parent 6a7151da4f
commit a6c2077be7
6 changed files with 53 additions and 35 deletions
@@ -31,3 +31,17 @@ export const collectRequirements = (constraints: Constraint[], ctx: ConstraintCo
}
return keys;
};
export interface ActionWithConstraints {
buildConstraints(ctx: ConstraintContext, args: unknown): Constraint[];
}
export const evaluateActionConstraints = <Args>(
action: ActionWithConstraints,
ctx: ConstraintContext,
view: StateView,
args: Args
): ConstraintResult => {
const constraints = action.buildConstraints(ctx, args);
return evaluateConstraints(constraints, ctx, view);
};