Skip to content

Writer

📤 `pkg/runner/writer.go` — 多格式持久化。

Writer 接口抽象 Result 的持久化,多种实现可同时启用。

📁 源码:pkg/runner/writer.go

类型与构造

符号源码说明
JSONLWriterL18流式 JSONL
NewJSONLWriter(filePath)L23构造
CSVWriterL71表格 CSV
NewCSVWriter(filePath)L78构造
StdoutWriterL150控制台
NewStdoutWriter()L153构造
CreateWriters(opts)L181按 Options 创建一组

CreateWriters 工厂

CreateWriters 依据 Options.Writer(Jsonl/Csv/Stdout)创建启用的 Writer 列表:

分发

Runner 把每个 Result 分发给所有 Writer

各格式特点

格式特点嵌套字段处理
JSONL每行一条完整 JSON,流式追加完整保留(序列化为 JSON 对象/数组)
CSV扁平表格,每行一条序列化为字符串或省略
Stdout实时控制台,彩色摘要打印

JSONLWriter 实现

JSONLWriter 持有文件句柄,每条 Result json.Marshal 后追加一行(\n 分隔)。适合流式管线与 jq 处理。

results.jsonl:
{"schema_version":"snir-skills.result.v1","url":"a.com",...}\n
{"schema_version":"snir-skills.result.v1","url":"b.com",...}\n
{"schema_version":"snir-skills.result.v1","url":"c.com",...}\n

详见 输出选项

下一步

基于 MIT 许可发布