Pipes (
Pipes chain **transforms** on returns (or conditions)—e.g. `jsonParse`, `template`. In v1 they are left-associative: each stage feeds the next.
左结合;每一管道段的 主输入 默认来自上一段的处理结果(首段来自返回体 / @file 等);() 内仅写 额外配置,不把 payload 再传一遍(v2 见 22.4.1.0)。
最终产出可发送的 text 帧字符串。
v1 管道仅在 返回行(匹配后的后置处理)。v2 起与条件行 前置 > 链 共用 Transform 注册表,见 第二十二节(v2 非 v1 Normative)。
v1 内置 transform 白名单
| 名称 | 输入→输出 | 说明 |
|---|---|---|
| jsonParse | string → value | 解析 JSON |
| jsonStringify | value → string | 序列化 |
| template | value → string | 展开 $var |
| pick($.path) | value → value | 取子树 |
| set($.path, val) | value → value | 写字段 |
| merge($obj) | value → value | 浅合并 |
| asText | value → string | 文本化 |
每一段的 输入 为上一段输出;首段输入为 @file / JSON 字面量等返回体(见 9.5)。() 内为路径或配置,不是 payload 本身(v2 统一表述见 22.4.1.0)。
错误
结构化错误(行号 + code),供 MCP 修正。无自定义函数、无分支、无循环。
v2 Transform 调用(概要)
v2 起管道段与前置 > 链统一为 函数调用:主输入 隐式 继承上一段输出(| 链)或 raw 帧(> 链首段);() 内仅 配置参数(如 msgpack(timestamp))。无配置时可省略 ()(| msgpack ≡ | msgpack())。详见 22.4.1。
v2 迁移说明(概要)
v1 的 jsonParse / jsonStringify 在 v2 compile 期 desugar 为注册表 transform json 的后置 / 前置用法(见 22.4)。
v1 管道 template、pick($.path) 等在 v2 IR 中归一化为 { name, args[] } 调用节点。
# flow-version 1 相对 v2 语法/多格式 不变;同版本号内 runtime 修订见 附录 F(如 v1.3.3 runBranch)。