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;
}