(sessionID: string, limit: number, before?: string, onAttempt?: () => void)
| 443 | ) |
| 444 | |
| 445 | const fetchMessages = async (sessionID: string, limit: number, before?: string, onAttempt?: () => void) => { |
| 446 | const response = await (options?.retry ?? retry)(() => { |
| 447 | onAttempt?.() |
| 448 | return client.session.messages({ sessionID, limit, before }) |
| 449 | }) |
| 450 | const items = (response.data ?? []).filter((item) => !!item?.info?.id) |
| 451 | return { |
| 452 | session: items.map((item) => cleanMessage(item.info)).sort((a, b) => cmp(a.id, b.id)), |
| 453 | part: items.map((item) => ({ |
| 454 | id: item.info.id, |
| 455 | part: item.parts.filter((part) => !!part?.id).sort((a, b) => cmp(a.id, b.id)), |
| 456 | })), |
| 457 | cursor: response.response.headers.get("x-next-cursor") ?? undefined, |
| 458 | complete: !response.response.headers.get("x-next-cursor"), |
| 459 | } |
| 460 | } |
| 461 | |
| 462 | const replaceMessages = (sessionID: string, messages: Message[]) => { |
| 463 | const messageIDs = new Set(messages.map((message) => message.id)) |
no test coverage detected