function formatComponentSchema()

in packages/build-plugin-lowcode/src/index.js [93:134]


function formatComponentSchema(schema) {
  let { props } = schema;
  const defaultProps = {};
  let noStyleProp = true;
  if (props && Array.isArray(props)) {
    props.forEach((prop) => {
      if (prop.defaultValue) {
        defaultProps[prop.name] = prop.defaultValue;
      }
      if (noStyleProp && ['style'].includes(prop.name)) {
        noStyleProp = false;
      }
    });
    if (noStyleProp) {
      props.push({
        name: 'style',
        propType: 'object',
      });
    }
  } else {
    props = [
      {
        name: 'style',
        propType: 'object',
      },
    ];
  }
  schema.props = props;
  const parsedSchema = parseProps(schema);
  delete parsedSchema.props;
  parsedSchema.snippets = [
    {
      title: schema.componentName,
      screenshot: schema.screenshot,
      schema: {
        componentName: schema.componentName,
        props: defaultProps,
      },
    },
  ];
  return parsedSchema;
}