Kaizen
Browse modulesFormsforms/serverFunctions

Function: resolveTransitionLogic()

function resolveTransitionLogic(transition: {
  fromStepId: string;
  id: string;
  label: string | null;
  priority: number;
  ruleId: string | null;
  ruleVersionId: string | null;
  toStepId: string;
}, rvById: Map<string, {
  changeReason: string | null;
  conditionLogic: JsonValue;
  createdAt: Date;
  createdBy: string | null;
  deletedAt: Date | null;
  deletedBy: string | null;
  domainConfig: JsonValue;
  effectiveEnd: Date | null;
  effectiveStart: Date;
  id: string;
  priority: number;
  ruleEffectiveDate: Date | null;
  ruleExpirationDate: Date | null;
  ruleId: string;
  scopes: JsonValue;
  versionNumber: number;
}>): 
  | ConditionLogicNode
  | null;

Defined in: server/forms/condition-evaluator.ts:89

Resolve a transition's conditionLogic from its pinned rule version. Returns:

  • null for unconditional transitions (no ruleId/ruleVersionId)
  • null for transitions whose pinned rule version isn't in rvById (an authoring bug that should have been caught at publish time)
  • the parsed condition_logic JSON otherwise

Server-only: input row shape requires @prisma/client.

Parameters

ParameterTypeDescription
transition{ fromStepId: string; id: string; label: string | null; priority: number; ruleId: string | null; ruleVersionId: string | null; toStepId: string; }-
transition.fromStepIdstring-
transition.idstring-
transition.labelstring | null-
transition.prioritynumber-
transition.ruleIdstring | nullAuthoring pointer: Rules row whose condition_logic gates this edge.
transition.ruleVersionIdstring | nullPinned at schema-version publish time; drives runtime evaluation.
transition.toStepIdstring-
rvByIdMap<string, { changeReason: string | null; conditionLogic: JsonValue; createdAt: Date; createdBy: string | null; deletedAt: Date | null; deletedBy: string | null; domainConfig: JsonValue; effectiveEnd: Date | null; effectiveStart: Date; id: string; priority: number; ruleEffectiveDate: Date | null; ruleExpirationDate: Date | null; ruleId: string; scopes: JsonValue; versionNumber: number; }>-

Returns

| ConditionLogicNode | null

On this page