export function resolvePropToExpression()

in packages/codegen-ui-react/lib/react-component-render-helper.ts [264:297]


export function resolvePropToExpression(prop: ComponentPropertyValueTypes): Expression {
  if (isFixedPropertyWithValue(prop)) {
    const propValue = prop.value;
    switch (typeof propValue) {
      case 'number':
        return factory.createNumericLiteral(propValue, undefined);
      case 'boolean':
        return propValue ? factory.createTrue() : factory.createFalse();
      default:
        return factory.createStringLiteral(propValue.toString(), undefined);
    }
  }
  if (isBoundProperty(prop)) {
    const expr =
      prop.defaultValue === undefined
        ? buildBindingExpression(prop)
        : buildBindingWithDefaultExpression(prop, prop.defaultValue);
    return expr;
  }
  if (isCollectionItemBoundProperty(prop)) {
    const expr =
      prop.defaultValue === undefined
        ? buildCollectionBindingExpression(prop)
        : buildCollectionBindingWithDefaultExpression(prop, prop.defaultValue);
    return expr;
  }
  if (isConcatenatedProperty(prop)) {
    return buildConcatExpression(prop);
  }
  if (isConditionalProperty(prop)) {
    return buildConditionalExpression(prop);
  }
  return factory.createVoidZero();
}