Files
oh-my-opencode/src/hooks/session-recovery/storage/messages-reader.ts
T

28 lines
862 B
TypeScript
Raw Normal View History

import { existsSync, readdirSync, readFileSync } from "node:fs"
import { join } from "node:path"
import type { StoredMessageMeta } from "../types"
import { getMessageDir } from "./message-dir"
export function readMessages(sessionID: string): StoredMessageMeta[] {
const messageDir = getMessageDir(sessionID)
if (!messageDir || !existsSync(messageDir)) return []
const messages: StoredMessageMeta[] = []
for (const file of readdirSync(messageDir)) {
if (!file.endsWith(".json")) continue
try {
const content = readFileSync(join(messageDir, file), "utf-8")
messages.push(JSON.parse(content))
} catch {
continue
}
}
return messages.sort((a, b) => {
const aTime = a.time?.created ?? 0
const bTime = b.time?.created ?? 0
if (aTime !== bTime) return aTime - bTime
return a.id.localeCompare(b.id)
})
}