export function getSchemaFromFlatten()

in packages/form-render/src/models/flattenSchema.ts [16:40]


export function getSchemaFromFlatten(flatten: any, path = '#') {
  let schema: any = {};
  const item = _cloneDeep(flatten[path]);

  if (!item) {
    return schema;
  }
  
  schema = item.schema;
  // schema.$id && delete schema.$id;
  if (item.children.length > 0) {
    item.children.forEach((child: any) => {
      if (!flatten[child]) return;
      const key = getKeyFromPath(child);
      if (isObjType(schema)) {
        schema.properties[key] = getSchemaFromFlatten(flatten, child);
      }
      if (isListType(schema)) {
        schema.items.properties[key] = getSchemaFromFlatten(flatten, child);
      }
    });
  }

  return schema;
}