UNPKG

@mesh-tech/mesh-cli

Version:

CLI for Mesh platform development utilities

41 lines (40 loc) 1.3 kB
import { historyToJSON } from "@temporalio/common/lib/proto-utils.js"; function isPayload(value) { return (value != null && typeof value === "object" && "metadata" in value && "data" in value); } export async function decryptHistoryPayloads(node, decrypt) { if (node == null || typeof node !== "object") return 0; if (isPayload(node)) { const inner = await decrypt(node); if (inner === null) return 0; node.metadata = inner.metadata ?? {}; node.data = inner.data ?? new Uint8Array(0); return 1; } let count = 0; if (Array.isArray(node)) { for (const item of node) count += await decryptHistoryPayloads(item, decrypt); } else { for (const value of Object.values(node)) { count += await decryptHistoryPayloads(value, decrypt); } } return count; } export async function serializeHistoryToFixture(events, decrypter) { let decryptedPayloads = 0; if (decrypter) { for (const event of events) { decryptedPayloads += await decryptHistoryPayloads(event, decrypter); } } const fixture = JSON.parse(historyToJSON({ events })); return { fixture, eventCount: events.length, decryptedPayloads }; }