export function validateObject()

in src/types/MObjectType.ts [8:31]


export function validateObject(assembly:Assembly, schema:MFieldSchemaAnonymity, value:any, path:string): MValidationResult {
  if(schema.objectFields){
    let objectFieldMap = _.chain(schema.objectFields).keyBy('name').value();
    if(schema.uispec?.segments){
      const fields = _.flatten(schema.uispec?.segments.map(e=>e.fields)).filter(e=>_.isString(e)) as string[];
      objectFieldMap = _.pick(objectFieldMap, fields);
    }

    const hideMap = MUtil.hideMap(value, schema.objectFields);    
    for(let k in objectFieldMap){
      const f = objectFieldMap[k];
      if(hideMap[k]){ // 隐藏的字段不要校验
        continue;
      }
      const r = assembly.validate(f, _.get(value, f.name), path ? path + "." + f.name : f.name);
      if(r){
        return r;
      }
    }
  } else if(!_.isNil(value) && !_.isObject(value)){
    return {message: "不是有效JSON", path};
  }
  return undefined;
}