@lark-project/cli
Version:
飞书项目插件开发工具
36 lines (35 loc) • 1.34 kB
JavaScript
;
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;