File size: 651 Bytes
76289e7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import type { PersistedMemoryHostEvent } from "./event-store.js";
export const MAX_MEMORY_HOST_PUBLIC_EXPORT_BYTES = 1024 * 1024;
export function serializeMemoryHostEventExport(
storedEvents: readonly PersistedMemoryHostEvent[],
): string {
const lines: string[] = [];
let sizeBytes = 0;
for (const entry of storedEvents.toReversed()) {
const line = JSON.stringify(entry.value.event);
const lineBytes = Buffer.byteLength(line, "utf8") + 1;
if (sizeBytes + lineBytes > MAX_MEMORY_HOST_PUBLIC_EXPORT_BYTES) {
break;
}
lines.push(line);
sizeBytes += lineBytes;
}
return lines.toReversed().join("\n") + "\n";
}
|