in packages/dynamodb-expressions/src/ConditionExpression.ts [365:394]
export function isConditionExpression(arg: any): arg is ConditionExpression {
if (FunctionExpression.isFunctionExpression(arg)) {
return true;
}
if (Boolean(arg) && typeof arg === 'object') {
switch (arg.type) {
case 'Not':
return isConditionExpression(arg.condition);
case 'And':
case 'Or':
if (Array.isArray(arg.conditions)) {
for (const condition of arg.conditions) {
if (!isConditionExpression(condition)) {
return false;
}
}
return true;
}
return false;
default:
return isConditionExpressionSubject(arg)
&& isConditionExpressionPredicate(arg);
}
}
return false;
}