UNPKG

@lark-project/cli

Version:

飞书项目插件开发工具

36 lines (35 loc) 1.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.appendCheckpoint = void 0; const fs_extra_1 = require("fs-extra"); const paths_1 = require("./paths"); /** * Append a workflow event as one JSON line to .lpm-cache/events.jsonl. * * Design: * - commander 层已在入参校验时 JSON.parse 过一次,此处信任 event 是合法 JSON * - 我们 re-stringify 后写入,确保单行(即使来源含换行也压扁),便于后续按行读取 * - 自动注入 ts 字段(ISO timestamp),已有则不覆盖 */ function appendCheckpoint(rawEvent) { let parsed; try { parsed = JSON.parse(rawEvent); } catch (e) { process.stderr.write(`event payload is not valid JSON: ${e.message}\n`); process.exit(1); } if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) { process.stderr.write('event payload must be a JSON object\n'); process.exit(1); } if (!('ts' in parsed)) { parsed.ts = new Date().toISOString(); } (0, paths_1.ensureEventsDir)(); (0, fs_extra_1.appendFileSync)((0, paths_1.getEventsPath)(), JSON.stringify(parsed) + '\n'); // stdout 一行确认,方便 skill 拿到确认信号 process.stdout.write('ok\n'); } exports.appendCheckpoint = appendCheckpoint;