MCPcopy Create free account
hub / github.com/eclipsesource/jsonforms / evaluateCondition

Function evaluateCondition

packages/core/src/util/runtime.ts:65–108  ·  view source on GitHub ↗
(
  data: any,
  uischema: UISchemaElement,
  condition: Condition,
  path: string,
  ajv: Ajv,
  config: unknown
)

Source from the content-addressed store, hash-verified

63};
64
65const evaluateCondition = (
66 data: any,
67 uischema: UISchemaElement,
68 condition: Condition,
69 path: string,
70 ajv: Ajv,
71 config: unknown
72): boolean => {
73 if (isAndCondition(condition)) {
74 return condition.conditions.reduce(
75 (acc, cur) =>
76 acc && evaluateCondition(data, uischema, cur, path, ajv, config),
77 true
78 );
79 } else if (isOrCondition(condition)) {
80 return condition.conditions.reduce(
81 (acc, cur) =>
82 acc || evaluateCondition(data, uischema, cur, path, ajv, config),
83 false
84 );
85 } else if (isLeafCondition(condition)) {
86 const value = resolveData(data, getConditionScope(condition, path));
87 return value === condition.expectedValue;
88 } else if (isSchemaCondition(condition)) {
89 const value = resolveData(data, getConditionScope(condition, path));
90 if (condition.failWhenUndefined && value === undefined) {
91 return false;
92 }
93 return ajv.validate(condition.schema, value) as boolean;
94 } else if (isValidateFunctionCondition(condition)) {
95 const value = resolveData(data, getConditionScope(condition, path));
96 const context = {
97 data: value,
98 fullData: data,
99 path,
100 uischemaElement: uischema,
101 config,
102 };
103 return condition.validate(context);
104 } else {
105 // unknown condition
106 return true;
107 }
108};
109
110const isRuleFulfilled = (
111 uischema: UISchemaElement,

Callers 1

isRuleFulfilledFunction · 0.85

Calls 7

resolveDataFunction · 0.90
isAndConditionFunction · 0.85
isOrConditionFunction · 0.85
isLeafConditionFunction · 0.85
getConditionScopeFunction · 0.85
isSchemaConditionFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…