Skip to main content

process_node

Function process_node 

Source
pub fn process_node(
    doc: &mut Value,
    fields: &mut Vec<String>,
    relations: &mut Vec<(String, RelAst)>,
    schema: &Schema,
    ctx: Option<&Context>,
    registry: &Registry,
    fn_registry: Option<&dyn FnRegistry>,
) -> Result<(), String>
Expand description

递归处理单条文档:补默认值 → 跑 fn 计算列 → 补计算列默认值 → 递归下钻 → 裁剪 → 权限裁剪

时序严格(对应 JS processNode):

  1. 展平 object 子字段
  2. 收集 needed / dotFields
  3. 补字段默认值
  4. 跑 fn 计算列 + 补计算列默认值
  5. 递归下钻
  6. 权限裁剪
  7. 裁剪字段